CVE-2025-50182
urllib3 does not control redirects in browsers and Node.js
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
urllib3 does not control redirects in browsers and Node.js
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
CVE-2025-50182- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
EUVDEUVD-2025-18677
5.3
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
EUVD-2025-18677- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-48p4-8xcf-vxj5
5.3
urllib3 does not control redirects in browsers and Node.js
urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means you can use Python libraries to make HTTP requests from your browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects.
However, the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior.
Affected usages
Any code which relies on urllib3 to control the number of redirects for an HTTP request in a Pyodide runtime.
Impact
Redirects are often used to exploit SSRF vulnerabilities. An application attempting to mitigate SSRF or open redirect vulnerabilities by disabling redirects may remain vulnerable if a Pyodide runtime redirect mechanism is unsuitable.
Remediation
If you use urllib3 in Node.js, upgrade to a patched version of urllib3.
Unfortunately, browsers provide no suitable way which urllib3 can use: XMLHttpRequest provides no control over redirects, the Fetch API returns opaqueredirect responses lacking data when redirects are controlled manually. Expect default browser behavior for redirects.
- Record
GHSA-48p4-8xcf-vxj5- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
NVD
5.3
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
CVE-2025-50182- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
OSVBELL-CVE-2025-50182
6.1
- Record
BELL-CVE-2025-50182- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSV
5.3
urllib3 does not control redirects in browsers and Node.js
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
CVE-2025-50182- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2025-50182
6.1
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
DEBIAN-CVE-2025-50182- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVGHSA-48p4-8xcf-vxj5
5.3
urllib3 does not control redirects in browsers and Node.js
urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means you can use Python libraries to make HTTP requests from your browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects.
However, the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior.
Affected usages
Any code which relies on urllib3 to control the number of redirects for an HTTP request in a Pyodide runtime.
Impact
Redirects are often used to exploit SSRF vulnerabilities. An application attempting to mitigate SSRF or open redirect vulnerabilities by disabling redirects may remain vulnerable if a Pyodide runtime redirect mechanism is unsuitable.
Remediation
If you use urllib3 in Node.js, upgrade to a patched version of urllib3.
Unfortunately, browsers provide no suitable way which urllib3 can use: XMLHttpRequest provides no control over redirects, the Fetch API returns opaqueredirect responses lacking data when redirects are controlled manually. Expect default browser behavior for redirects.
- Record
GHSA-48p4-8xcf-vxj5- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
OSVPYSEC-2026-1997
5.3
urllib3 does not control redirects in browsers and Node.js
urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means you can use Python libraries to make HTTP requests from your browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects.
However, the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior.
Affected usages
Any code which relies on urllib3 to control the number of redirects for an HTTP request in a Pyodide runtime.
Impact
Redirects are often used to exploit SSRF vulnerabilities. An application attempting to mitigate SSRF or open redirect vulnerabilities by disabling redirects may remain vulnerable if a Pyodide runtime redirect mechanism is unsuitable.
Remediation
If you use urllib3 in Node.js, upgrade to a patched version of urllib3.
Unfortunately, browsers provide no suitable way which urllib3 can use: XMLHttpRequest provides no control over redirects, the Fetch API returns opaqueredirect responses lacking data when redirects are controlled manually. Expect default browser behavior for redirects.
- Record
PYSEC-2026-1997- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2025-50182
6.1
CVE-2025-50182 in urllib3 - Patched by Root
Root has patched CVE-2025-50182 in the urllib3 package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2025-50182- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-03
OSVUBUNTU-CVE-2025-50182
5.3
urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2.5.0, urllib3 does not control redirects in browsers and Node.js. urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means Python libraries can be used to make HTTP requests from a browser or Node.js. Additionally, urllib3 provides a mechanism to control redirects, but the retries and redirect parameters are ignored with Pyodide; the runtime itself determines redirect behavior. This issue has been patched in version 2.5.0.
- Record
UBUNTU-CVE-2025-50182- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15283-1 No score
python311-urllib3-2.5.0-1.1 on GA media
These are all security issues fixed in the python311-urllib3-2.5.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15283-1- Updated
- 2026-11-02
OSVUSN-7599-1 No score
python-urllib3 vulnerabilities
Jacob Sandum discovered that urllib3 handled redirects even when they were explicitly disabled while using the PoolManager. An attacker could possibly use this issue to obtain sensitive information. (CVE-2025-50181)
Illia Volochii discovered that urllib3 incorrectly handled retry and redirect parameters when using Node.js. An attacker could possibly use this issue to obtain sensitive information. This issue only affected Ubuntu 25.04. (CVE-2025-50182)
- Record
USN-7599-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
urllib3PyPI |
2.2.0 up to 2.5.0 | 2.5.0 |
py3-urllib3Alpaquita:23 |
1.26.12-r1 and later | None known |
py3-urllib3Alpaquita:stream |
1.26.12-r1 and later | None known |
python-urllib3Debian:13 |
before 2.3.0-3 | 2.3.0-3 |
python-urllib3Debian:14 |
before 2.3.0-3 | 2.3.0-3 |
urllib3PyPI |
2.2.0 up to 2.5.0, plus listed versions 2.2.12.2.22.2.32.3.02.4.0 |
2.5.0 |
urllib3Root:PyPI |
before 2.4.0+aikido.7 | 2.4.0+aikido.72.2.2+aikido.42.3.0+aikido.72.2.3+aikido.52.2.1+aikido.52.2.3+aikido.62.4.0+aikido.8 |
python-urllib3Ubuntu:Pro:16.04:LTS From an advisory covering 2 CVEs |
before 1.13.1-2ubuntu0.16.04.4+esm3, plus listed versions 1.11-11.12-11.13.1-11.13.1-21.13.1-2ubuntu0.16.04.1 Show 5 moreShow less1.13.1-2ubuntu0.16.04.21.13.1-2ubuntu0.16.04.31.13.1-2ubuntu0.16.04.41.13.1-2ubuntu0.16.04.4+esm11.13.1-2ubuntu0.16.04.4+esm2 |
1.13.1-2ubuntu0.16.04.4+esm3 |
python-urllib3Ubuntu:Pro:18.04:LTS From an advisory covering 2 CVEs |
before 1.22-1ubuntu0.18.04.2+esm3, plus listed versions 1.21.1-11.22-11.22-1ubuntu0.18.04.11.22-1ubuntu0.18.04.21.22-1ubuntu0.18.04.2+esm11.22-1ubuntu0.18.04.2+esm2 |
1.22-1ubuntu0.18.04.2+esm3 |
python-urllib3Ubuntu:Pro:20.04:LTS From an advisory covering 2 CVEs |
before 1.25.8-2ubuntu0.4+esm1, plus listed versions 1.24.1-1ubuntu11.24.1-1ubuntu21.25.8-11.25.8-21.25.8-2ubuntu0.11.25.8-2ubuntu0.21.25.8-2ubuntu0.31.25.8-2ubuntu0.4 |
1.25.8-2ubuntu0.4+esm1 |
python-urllib3Ubuntu:22.04:LTS From an advisory covering 2 CVEs |
before 1.26.5-1~exp1ubuntu0.3, plus listed versions 1.26.5-1~exp11.26.5-1~exp1ubuntu0.11.26.5-1~exp1ubuntu0.2 |
1.26.5-1~exp1ubuntu0.3 |
python-urllib3Ubuntu:24.04:LTS From an advisory covering 2 CVEs |
before 2.0.7-1ubuntu0.2, plus listed versions 1.26.16-11.26.18-12.0.7-12.0.7-1ubuntu0.1 |
2.0.7-1ubuntu0.2 |
python-urllib3openSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 2.5.0-1.1 | 2.5.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-50182 is a medium vulnerability (CVSS 5.3) in Python Urllib3, published June 18, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.60%, the 49th percentile. Fixed in urllib3 2.5.0.
References
github.com/urllib3/urllib3/security/advisories/GHSA-48p4-8xcf-vxj5
github.com/urllib3/urllib3/commit/7eb4a2aafe49a279c29b6d1f0ed0f42e9736194f
github.com/urllib3/urllib3/releases/tag/2.5.0
nvd.nist.gov/vuln/detail/CVE-2025-50182
github.com/advisories/GHSA-48p4-8xcf-vxj5
docs.bell-sw.com/security/cves/CVE-2025-50182
Show 10 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2025/50xxx/CVE-2025-50182.json
security-tracker.debian.org/tracker/CVE-2025-50182
github.com/urllib3/urllib3
pypi.org/project/urllib3
ubuntu.com/security/CVE-2025-50182
cve.org/CVERecord?id=CVE-2025-50182
ubuntu.com/security/notices/USN-7599-1
ubuntu.com/security/CVE-2025-50181
suse.com/security/cve/CVE-2025-50181
suse.com/security/cve/CVE-2025-50182