← Vulnerability feed

Vulnerability record · CVE-2026-21441 · published 7 January 2026

CVE-2026-21441: Python urllib3 vulnerability

Python · Urllib3

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`, or `zstd`). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption. Starting in version 1.22 and prior to version 2.6.3, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client. Applications and libraries are affected when they stream content from untrusted sources by setting `preload_content=False` when they do not disable redirects. Users should upgrade to at least urllib3 v2.6.3, in which the library does not decode content of redirect responses when `preload_content=False`. If upgrading is not immediately possible, disable redirects by setting `redirect=False` for requests to untrusted source.

8.9 CVSS 4.0 High EPSS 3.0% · top 13.3% CWE-409 · CWE-409
8.9CVSS 4.0 base score
3.0%EPSS exploitation probability, 30 days
NoNot in CISA KEV
1Affected product versions listed by NVD
118References
15 Sep 2026Last modified by NVD

Description

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`, or `zstd`). When using the streaming API, the library decompresses only the necessary bytes, enabling partial content consumption. Starting in version 1.22 and prior to version 2.6.3, for HTTP redirect responses, the library would read the entire response body to drain the connection and decompress the content unnecessarily. This decompression occurred even before any read methods were called, and configured read limits did not restrict the amount of decompressed data. As a result, there was no safeguard against decompression bombs. A malicious server could exploit this to trigger excessive resource consumption on the client. Applications and libraries are affected when they stream content from untrusted sources by setting `preload_content=False` when they do not disable redirects. Users should upgrade to at least urllib3 v2.6.3, in which the library does not decode content of redirect responses when `preload_content=False`. If upgrading is not immediately possible, disable redirects by setting `redirect=False` for requests to untrusted source.

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

LinkTags
https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b Patch
https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99 Vendor Advisory
https://lists.debian.org/debian-lts-announce/2026/01/msg00017.html
https://access.redhat.com/errata/RHSA-2026:0981
https://access.redhat.com/errata/RHSA-2026:0990
https://access.redhat.com/errata/RHSA-2026:10184
https://access.redhat.com/errata/RHSA-2026:1038
https://access.redhat.com/errata/RHSA-2026:1041
https://access.redhat.com/errata/RHSA-2026:1042
https://access.redhat.com/errata/RHSA-2026:1086
https://access.redhat.com/errata/RHSA-2026:1087
https://access.redhat.com/errata/RHSA-2026:1088
https://access.redhat.com/errata/RHSA-2026:1089
https://access.redhat.com/errata/RHSA-2026:1166
https://access.redhat.com/errata/RHSA-2026:1168
https://access.redhat.com/errata/RHSA-2026:1176
https://access.redhat.com/errata/RHSA-2026:1224
https://access.redhat.com/errata/RHSA-2026:1226
https://access.redhat.com/errata/RHSA-2026:1239
https://access.redhat.com/errata/RHSA-2026:1240
https://access.redhat.com/errata/RHSA-2026:1241
https://access.redhat.com/errata/RHSA-2026:1254
https://access.redhat.com/errata/RHSA-2026:1485
https://access.redhat.com/errata/RHSA-2026:14877
https://access.redhat.com/errata/RHSA-2026:1504
https://access.redhat.com/errata/RHSA-2026:1546
https://access.redhat.com/errata/RHSA-2026:1596
https://access.redhat.com/errata/RHSA-2026:1599
https://access.redhat.com/errata/RHSA-2026:1609
https://access.redhat.com/errata/RHSA-2026:1618
https://access.redhat.com/errata/RHSA-2026:1619
https://access.redhat.com/errata/RHSA-2026:1652
https://access.redhat.com/errata/RHSA-2026:1674
https://access.redhat.com/errata/RHSA-2026:1676
https://access.redhat.com/errata/RHSA-2026:1693
https://access.redhat.com/errata/RHSA-2026:1704
https://access.redhat.com/errata/RHSA-2026:1706
https://access.redhat.com/errata/RHSA-2026:1712
https://access.redhat.com/errata/RHSA-2026:1717
https://access.redhat.com/errata/RHSA-2026:1726

Track CVE-2026-21441 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

9.8CVE-2018-20060Python urllib3 vulnerabilityurllib3 before version 1.23 does not remove the Authorization HTTP header when following a cross-origin redirect (i.e., a redirect that differs in ho…EPSS 4.5%8.9CVE-2026-44432Python urllib3 vulnerabilityurllib3 is an HTTP client library for Python. From 2.6.0 to before 2.7.0, urllib3 could decompress the whole response instead of the requested portio…EPSS 0.88%8.9CVE-2025-66471Python urllib3 vulnerabilityurllib3 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 co…EPSS 0.68%8.9CVE-2025-66418Python urllib3 allocation without limits vulnerabilityurllib3 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 chai…EPSS 0.68%8.2CVE-2026-44431Python urllib3 information exposure vulnerabilityurllib3 is an HTTP client library for Python. From 1.23 to before 2.7.0, cross-origin redirects followed from the low-level API via ProxyManager.conn…EPSS 0.34%8.1CVE-2023-43804Python urllib3 information exposure vulnerabilityurllib3 is a user-friendly HTTP client library for Python. urllib3 doesn't treat the `Cookie` HTTP header special or provide any helpers for managing…EPSS 1.2%7.5CVE-2021-33503Python urllib3 uncontrolled resource consumption vulnerabilityAn issue was discovered in urllib3 before 1.26.5. When provided with a URL containing many @ characters in the authority component, the authority reg…EPSS 3.3%7.5CVE-2020-7212Python urllib3 uncontrolled resource consumption vulnerabilityThe _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…EPSS 3.4%

Source: NIST National Vulnerability Database (record CVE-2026-21441), CISA KEV, FIRST EPSS (scores of 2026-09-29). This page is refreshed as NVD updates the record.