high7.5
CVE-2026-97689
urllib3: HTTPResponse.stream()/read_chunked() buffers an unbounded chunk-size line into memory
Impact
urllib3 is an HTTP client library for Python. From 1.10.3 until 2.8.0, the HTTPResponse.read_chunked and HTTPResponse.stream methods can allocate unbounded memory because the streaming chunk parser buffers the chunk-size field until newline or EOF without a length bound. The trigger is that a malicious server returns Transfer-Encoding: chunked followed by a very long run of bytes without a newline. The attack mechanism is that a malicious HTTP server sends a very long unterminated chunk-size line. The impact is that unbounded memory allocation can exhaust the client process. This issue is fixed in version 2.8.0.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | urllib3 | >= 1.10.3, < 2.8.0 | 2.8.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Python | Urllib3 | from 1.10.3 before 2.8.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-vxq7-64xx-v4gw
- https://github.com/urllib3/urllib3/security/advisories/GHSA-vxq7-64xx-v4gw
- https://nvd.nist.gov/vuln/detail/CVE-2026-97689
- https://github.com/urllib3/urllib3/commit/cd770b059b543be29298ea5c52afb0b1b090f5ed
- https://github.com/urllib3/urllib3/releases/tag/2.8.0