Skip to main content
No exploitation reportedFix available

CVE-2026-97688

urllib3: Chunked Deflate streaming can enter an infinite loop

No exploitation reported by the sources we read.

  • Published2026-09-29
  • Fixed in2.8.0
  • WeaknessCWE-835

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

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.

Timeline

dates in UTC
  1. 2026-09-2916:17CVE publishedNVD

Observed activity

isMalicious corpus · updated 2026-10-23 15:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2026-97688?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2026-97688?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

NVD · OSV
Python urllib3
BranchAffectedFixed in
2.x≥ 2.6.2, < 2.8.02.8.0

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Vendor advisories

  • CVE-2026-97688 Red Hat Product Security28 products fixed

    urllib3: urllib3: Denial of Service via infinite loop during chunked Deflate decoding

  • RHSA-2026:83121 Red Hat Product Security1 product fixed

    Red Hat Security Advisory: Red Hat AI Inference 3.4.6 (rocm)

  • RHSA-2026:83120 Red Hat Product Security2 products fixed

    Red Hat Security Advisory: Red Hat AI Inference 3.4.6 (cuda)

  • RHSA-2026:83116 Red Hat Product Security2 products fixed

    Red Hat Security Advisory: Red Hat AI Inference Model Optimization Tools 3.4.6 (cuda)

  • RHSA-2026:83114 Red Hat Product Security3 products fixed

    Red Hat Security Advisory: Red Hat AI Inference 3.4.6 (spyre)

  • RHSA-2026:83112 Red Hat Product Security1 product fixed

    Red Hat Security Advisory: Red Hat AI Inference 3.4.6 (cpu)

6 more advisories

Full record on NVD

Fix

  1. Update Python urllib3 to 2.8.0
  2. Vendor fix Red Hat Product Security RHSA-2026:83121 · 1 productFor more information visit https://access.redhat.com/errata/RHSA-2026:83121
  3. Vendor fix Red Hat Product Security RHSA-2026:83120 · 2 productsFor more information visit https://access.redhat.com/errata/RHSA-2026:83120
  4. Vendor fix Red Hat Product Security RHSA-2026:83116 · 2 productsFor more information visit https://access.redhat.com/errata/RHSA-2026:83116
  5. Vendor fix Red Hat Product Security RHSA-2026:83114 · 3 productsFor more information visit https://access.redhat.com/errata/RHSA-2026:83114
  6. Vendor fix Red Hat Product Security RHSA-2026:83112 · 1 productFor more information visit https://access.redhat.com/errata/RHSA-2026:83112
  7. Vendor fix Red Hat Product Security RHSA-2026:82415 · 1 productFor more information visit https://access.redhat.com/errata/RHSA-2026:82415

Advisories and patches

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
none listed
PoC-in-GitHub

Sources

  • CISA-ADPSSVC decisionnone2026-09-29
  • OpenCVESSVC decisionnone—
  • CNACVSS 4.06.9read 2026-10-23
  • NVDCVSS 3.15.3read 2026-10-23
  • NVDweakness (CWE)CWE-835read 2026-10-23
  • FIRST EPSSEPSS score0.3 %2026-10-22
  • OSVaffected packages—

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS 4.0 vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/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:X/V:X/RE:X/U:X
Published
2026-09-29
Last Modified
2026-10-13
NVD status
Analyzed

Frequently asked questions

What is CVE-2026-97688?

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.

Is CVE-2026-97688 actively exploited?

Active exploitation of CVE-2026-97688 has not been confirmed. Its EPSS score was 0.3% on 2026-10-22, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2026-97688?

CVE-2026-97688 has a CVSS v3 base score of 5.3 (MEDIUM severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L.

Running urllib3? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month