Executive brief
urllib3 is a widely used Python library for making web requests. A vulnerability in how it handles redirected web traffic allows a malicious server to send a "decompression bomb"—a small file that expands into a massive amount of data when opened. This can cause an application to crash or become unresponsive by exhausting its memory and processing power.
Technical details
A vulnerability exists in urllib3's streaming API (specifically when `preload_content=False`) where the library fails to honor decompression limits during HTTP redirects. When a redirect occurs, the library attempts to "drain" the connection by reading and decompressing the entire response body before the user-defined read methods are even called. Because this process bypasses standard safeguards and read limits, a malicious server can return a compressed payload (e.g., gzip, deflate, zstd) that expands to an extreme size, leading to excessive CPU and memory consumption (CWE-409). The issue is fixed in version 2.6.3, which disables automatic decoding of redirect responses when streaming is enabled.
Affected products
- Python urllib3 >=1.22, <2.6.3
Timeline
- 2026-01-07: advisory: GitHub Security Advisory published
- 2026-01-07: disclosed
- 2026-01-07: patched: Fixed in version 2.6.3
- 2026-01-23: other: Debian LTS security update released
References
- https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b
- https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99
- 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