Patch Forecast
Yellow warning
Plan into this sprint.

CVE-2026-97688 · GHSA-gh4c-6fx4-qh6g

urllib3: Chunked Deflate streaming can enter an infinite loop

Risk score
46/100
CVSS
5.3 v3.1
Exploit chance (30 days)
0.3%
Published
29 Sep 2026

Open in the live forecast Today's forecast

What to know

What it is
urllib3 is an HTTP client library for Python. From 2.6.2 until 2.8.0, HTTPResponse.stream and HTTPResponse.read_chunked can enter an infinite loop because the Deflate decoder retains trailing bytes as unconsumed input after reaching end-of-stream and repeatedly decodes them without progress. The issue occurs when an u…
Affected
urllib3 (pip) >= 2.6.2, < 2.8.0
Fix
Upgrade urllib3 to 2.8.0 or later.
Exploitation
No known exploitation

Story map

Story map: urllib3THE FLAWSTHE FIXCVE-2026-97688Chunked Deflate streaming canenter an infinite loopCVSS 5.3 · EPSS 0%CVE-2026-97687HTTPS proxy TLS configurationmay be ignored or overriddenCVSS 8.1 · EPSS 0%CVE-2026-97689HTTPResponse.stream()/read_chunked() buffers an unboundedchunk-size line into memoryCVSS 7.5 · EPSS 0%Upgrade urllib32.8.0or later on your release lineWho is exposedurllib3 (pip) >= 1.26.0, < 2.8.0AMBER · PATCH THIS WEEKurllib3urllib3 is an HTTP client libraryfor Python. From 1.26.0 until2.8.0, the proxy_ssl_context,proxy_assert_hostname,proxy_assert_fingerprint,ssl_context, cert_reqs,verify_mode…Where it standsNo known exploitationCONNECTS TOSame weaknessCWE-835 (CWE-835)53 other warnings in 30 days →
Story map: the flaws, the fix, how it unfolded and what it connects to. Boxes link to the record or article.

At a glance

urllib3: Amber, patch this week. urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectl…

The flaws

  • CVE-2026-97688: Chunked Deflate streaming can enter an infinite loop (CVSS 5.3 · EPSS 0%)
  • CVE-2026-97687: HTTPS proxy TLS configuration may be ignored or overridden (CVSS 8.1 · EPSS 0%)
  • CVE-2026-97689: HTTPResponse.stream()/read_chunked() buffers an unbounded chunk-size line into memory (CVSS 7.5 · EPSS 0%)

The fix

Upgrade urllib3: 2.8.0 or later on your release line

Who is exposed: urllib3 (pip) >= 1.26.0, < 2.8.0

Where it stands

  • No known exploitation

Connects to

Why it is Yellow

  • CVSS 5.3 medium
  • On your watchlist: python, PyPI

Affected packages

PackageEcosystemVulnerableFixed in
urllib3pip>= 2.6.2, < 2.8.02.8.0

References

Original description

urllib3 is an HTTP client library for Python. From 2.6.2 until 2.8.0, HTTPResponse.stream and HTTPResponse.read_chunked can enter an infinite loop because the Deflate decoder retains trailing bytes as unconsumed input after reaching end-of-stream and repeatedly decodes them without progress. The issue occurs when an untrusted server sends a chunked Deflate response whose decoded body exceeds a positive finite chunk size and whose encoded body has trailing bytes, specifically a response with Transfer-Encoding: chunked and Content-Encoding: deflate, content decoding enabled, and the positive finite amt=N streaming chunk size. The attack mechanism is that a malicious server returns a compressed chunked response with trailing bytes after the Deflate stream. The impact is excessive CPU usage and a request that does not complete, and network read timeouts do not interrupt the loop because no further socket read occurs. This issue is fixed in version 2.8.0.

Last activity 29 Sep 2026. Patch Forecast updates every hour.