Description
urllib3 version 2.6.3 is vulnerable to a decompression bomb bypass in its streaming API (`preload_content=False`) when using Brotli support. The issue arises due to three independent code paths in `response.py` that bypass the `max_length` protection introduced in version 2.6.0 to mitigate CVE-2025-66471. Specifically, negative `max_length` values can be produced due to buffer arithmetic in `read()`, `flush_decoder` unconditionally overrides `max_length` to `-1`, and `_flush_decoder()` passes no limit at all, defaulting to unlimited decompression. This allows a malicious HTTP server to trigger an out-of-memory (OOM) condition by decompressing large payloads into memory, leading to a denial of service (DoS). The vulnerability affects urllib3 2.6.3 and Brotli 1.2.0 and impacts applications and libraries using `requests` or `urllib3` to stream content from untrusted sources.
Published: 2026-06-19
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows an attacker to bypass the max_length protection in urllib3's streaming API when Brotli is enabled. Negative or omitted max_length values enable unchecked decompression of large payloads, resulting in an out‑of‑memory condition that can crash or hang the application.

Affected Systems

Subscribers of urllib3 version 2.6.3, including applications or libraries that use requests or urllib3 to stream content from untrusted HTTP sources, especially those relying on Brotli 1.2.0 compression support. The issue also affects any environment where the affected library calls the streaming API with preload_content=False.

Risk and Exploitability

The CVSS score of 7.5 indicates a high level of risk. The lack of an available EPSS value means the exploitation probability is not quantified, but the vulnerability is not yet in the CISA KEV catalog. An attacker can trigger it by hosting malicious HTTP responses with large Brotli‑compressed payloads and directing the vulnerable client to fetch them, forcing the client to allocate memory without boundary checks. The resulting OOM can cause the application to terminate, leading to a denial of service. The attack does not require authentication and can be performed simply by controlling the transmission channel.

Generated by OpenCVE AI on June 19, 2026 at 20:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade urllib3 to a version that includes the fix (e.g., 2.6.4 or later).
  • Upgrade Brotli to the latest stable release to ensure compatible decompression logic.
  • Avoid using the streaming API with preload_content=False for untrusted HTTP sources, or use preload_content=True to download content fully.

Generated by OpenCVE AI on June 19, 2026 at 20:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 19 Jun 2026 19:15:00 +0000

Type Values Removed Values Added
Description urllib3 version 2.6.3 is vulnerable to a decompression bomb bypass in its streaming API (`preload_content=False`) when using Brotli support. The issue arises due to three independent code paths in `response.py` that bypass the `max_length` protection introduced in version 2.6.0 to mitigate CVE-2025-66471. Specifically, negative `max_length` values can be produced due to buffer arithmetic in `read()`, `flush_decoder` unconditionally overrides `max_length` to `-1`, and `_flush_decoder()` passes no limit at all, defaulting to unlimited decompression. This allows a malicious HTTP server to trigger an out-of-memory (OOM) condition by decompressing large payloads into memory, leading to a denial of service (DoS). The vulnerability affects urllib3 2.6.3 and Brotli 1.2.0 and impacts applications and libraries using `requests` or `urllib3` to stream content from untrusted sources.
Title Decompression Bomb Bypass via Negative max_length in Streaming API in urllib3
Weaknesses CWE-400
References
Metrics cvssV3_0

{'score': 7.5, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: @huntr_ai

Published:

Updated: 2026-06-19T18:45:10.409Z

Reserved: 2026-05-23T14:33:21.716Z

Link: CVE-2026-9375

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-19T20:30:04Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption