Python Urllib3 vulnerabilities

17 known vulnerabilities affecting python/urllib3.

Total CVEs
17
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL1HIGH7MEDIUM8LOW1

Vulnerabilities

Page 1 of 1
CVE-2026-21441HIGHCVSS 8.9≥ 1.22, < 2.6.32026-01-07
CVE-2026-21441 [HIGH] CWE-409 CVE-2026-21441: urllib3 is an HTTP client library for Python. urllib3's streaming API is designed for the efficient urllib3 is an HTTP client library for Python. urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. urllib3 can perform decoding or decompression based on the HTTP `Content-Encoding` header (e.g., `gzip`, `deflate`, `br`,
nvd
CVE-2025-66471HIGHCVSS 8.9≥ 1.0, < 2.6.02025-12-05
CVE-2025-66471 [HIGH] CWE-409 CVE-2025-66471: urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.0 and prior to 2.6. urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.0 and prior to 2.6.0, the Streaming API improperly handles highly compressed data. urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. Wh
nvd
CVE-2025-66418HIGHCVSS 8.9≥ 1.24, < 2.6.02025-12-05
CVE-2025-66418 [HIGH] CWE-770 CVE-2025-66418: urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.24 and prior to 2.6 urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.24 and prior to 2.6.0, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data. This vulnerabilit
nvd
CVE-2025-50181MEDIUMCVSS 6.1fixed in 2.5.02025-06-19
CVE-2025-50181 [MEDIUM] CWE-601 CVE-2025-50181: urllib3 is a user-friendly HTTP client library for Python. Prior to 2.5.0, it is possible to disable urllib3 is a user-friendly HTTP client library for Python. Prior to 2.5.0, it is possible to disable redirects for all requests by instantiating a PoolManager and specifying retries in a way that disable redirects. By default, requests and botocore users are not affected. An application attempting to mitigate SSRF or open redirect vulnerabilities by
nvd
CVE-2025-50182MEDIUMCVSS 6.1≥ 2.2.0, < 2.5.02025-06-19
CVE-2025-50182 [MEDIUM] CWE-601 CVE-2025-50182: urllib3 is a user-friendly HTTP client library for Python. Starting in version 2.2.0 and prior to 2. 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
nvd
CVE-2024-37891MEDIUMCVSS 6.5fixed in 1.26.19≥ 2.0.0, < 2.2.22024-06-17
CVE-2024-37891 [MEDIUM] CWE-669 CVE-2024-37891: urllib3 is a user-friendly HTTP client library for Python. When using urllib3's proxy support with urllib3 is a user-friendly HTTP client library for Python. When using urllib3's proxy support with `ProxyManager`, the `Proxy-Authorization` header is only sent to the configured proxy, as expected. However, when sending HTTP requests *without* using urllib3's proxy support, it's possible to accidentally configure the `Proxy-Authorization` header eve
nvd
CVE-2023-45803MEDIUMCVSS 4.2fixed in 1.26.18≥ 2.0.0, < 2.0.72023-10-17
CVE-2023-45803 [MEDIUM] CWE-200 CVE-2023-45803: urllib3 is a user-friendly HTTP client library for Python. urllib3 previously wouldn't remove the HT urllib3 is a user-friendly HTTP client library for Python. urllib3 previously wouldn't remove the HTTP request body when an HTTP redirect response using status 301, 302, or 303 after the request had its method changed from one that could accept a request body (like `POST`) to `GET` as is required by HTTP RFCs. Although this behavior is not specified
nvd
CVE-2018-25091MEDIUMCVSS 6.1fixed in 1.24.22023-10-15
CVE-2018-25091 [MEDIUM] CVE-2018-25091: urllib3 before 1.24.2 does not remove the authorization HTTP header when following a cross-origin re urllib3 before 1.24.2 does not remove the authorization HTTP header when following a cross-origin redirect (i.e., a redirect that differs in host, port, or scheme). This can allow for credentials in the authorization header to be exposed to unintended hosts or transmitted in cleartext. NOTE: this issue exists because of an incomplete fix for CVE-2018-20060
nvd
CVE-2023-43804HIGHCVSS 8.1fixed in 1.26.17≥ 2.0.0, < 2.0.62023-10-04
CVE-2023-43804 [MEDIUM] CWE-200 CVE-2023-43804: urllib3 is a user-friendly HTTP client library for Python. urllib3 doesn't treat the `Cookie` HTTP h urllib3 is a user-friendly HTTP client library for Python. urllib3 doesn't treat the `Cookie` HTTP header special or provide any helpers for managing cookies over HTTP, that is the responsibility of the user. However, it is possible for a user to specify a `Cookie` header and unknowingly leak information via HTTP redirects to a different origin if t
nvd
CVE-2021-33503HIGHCVSS 7.5≥ 1.25.4, < 1.26.52021-06-29
CVE-2021-33503 [HIGH] CWE-400 CVE-2021-33503: An issue was discovered in urllib3 before 1.26.5. When provided with a URL containing many @ charact An issue was discovered in urllib3 before 1.26.5. When provided with a URL containing many @ characters in the authority component, the authority regular expression exhibits catastrophic backtracking, causing a denial of service if a URL were passed as a parameter or redirected to via an HTTP redirect.
nvd
CVE-2021-28363MEDIUMCVSS 6.5≥ 1.26.0, < 1.26.42021-03-15
CVE-2021-28363 [MEDIUM] CWE-295 CVE-2021-28363: The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases i The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with
nvd
CVE-2020-26137MEDIUMCVSS 6.5fixed in 1.25.92020-09-30
CVE-2020-26137 [MEDIUM] CVE-2020-26137: urllib3 before 1.25.9 allows CRLF injection if the attacker controls the HTTP request method, as dem urllib3 before 1.25.9 allows CRLF injection if the attacker controls the HTTP request method, as demonstrated by inserting CR and LF control characters in the first argument of putrequest(). NOTE: this is similar to CVE-2020-26116.
nvd
CVE-2020-7212HIGHCVSS 7.5≥ 1.25.2, ≤ 1.25.72020-03-06
CVE-2020-7212 [HIGH] CWE-400 CVE-2020-7212: The _encode_invalid_chars function in util/url.py in the urllib3 library 1.25.2 through 1.25.7 for P The _encode_invalid_chars function in util/url.py in the urllib3 library 1.25.2 through 1.25.7 for Python allows a denial of service (CPU consumption) because of an inefficient algorithm. The percent_encodings array contains all matches of percent encodings. It is not deduplicated. For a URL of length N, the size of percent_encodings may be up to O(N).
nvd
CVE-2019-11324HIGHCVSS 7.5fixed in 1.24.22019-04-18
CVE-2019-11324 [HIGH] CWE-295 CVE-2019-11324: The urllib3 library before 1.24.2 for Python mishandles certain cases where the desired set of CA ce The urllib3 library before 1.24.2 for Python mishandles certain cases where the desired set of CA certificates is different from the OS store of CA certificates, which results in SSL connections succeeding in situations where a verification failure is the correct outcome. This is related to use of the ssl_context, ca_certs, or ca_certs_dir argument.
nvd
CVE-2019-11236MEDIUMCVSS 6.1≤ 1.24.22019-04-15
CVE-2019-11236 [MEDIUM] CWE-93 CVE-2019-11236: In the urllib3 library through 1.24.1 for Python, CRLF injection is possible if the attacker control In the urllib3 library through 1.24.1 for Python, CRLF injection is possible if the attacker controls the request parameter.
nvd
CVE-2018-20060CRITICALCVSS 9.8fixed in 1.232018-12-11
CVE-2018-20060 [CRITICAL] CVE-2018-20060: urllib3 before version 1.23 does not remove the Authorization HTTP header when following a cross-ori urllib3 before version 1.23 does not remove the Authorization HTTP header when following a cross-origin redirect (i.e., a redirect that differs in host, port, or scheme). This can allow for credentials in the Authorization header to be exposed to unintended hosts or transmitted in cleartext.
nvd
CVE-2016-9015LOWCVSS 3.7v1.17v1.182017-01-11
CVE-2016-9015 [LOW] CWE-295 CVE-2016-9015: Versions 1.17 and 1.18 of the Python urllib3 library suffer from a vulnerability that can cause them Versions 1.17 and 1.18 of the Python urllib3 library suffer from a vulnerability that can cause them, in certain configurations, to not correctly validate TLS certificates. This places users of the library with those configurations at risk of man-in-the-middle and information leakage attacks. This vulnerability affects users using versions 1.17 and 1.18
nvd