Description
HTTPX2 is a next generation HTTP client for Python. From 2.5.0 until 2.10.0, the HTTPX2 Server-Sent Events parser in src/httpx2/httpx2/_sse.py repeatedly copies and rescans buffered text in _SSELineDecoder.decode() when an attacker-controlled or compromised SSE endpoint splits one unterminated line across many response chunks. The behavior affects httpx2.Client.sse() and httpx2.AsyncClient.sse(), and the total processing work grows quadratically with the line length, allowing a crafted stream to consume excessive CPU and block a synchronous worker or asynchronous event loop. This issue is fixed in version 2.10.0.
Published: 2026-09-02
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Server‑Sent Events parser of HTTPX2. When an attacker‑controlled or compromised SSE endpoint sends a single very long, unterminated line split across many chunks, the _SSELineDecoder repeatedly copies and rescans the buffered text, causing the total work to grow quadratically with the line length. This excessive CPU processing can block a synchronous worker or an asynchronous event loop, effectively denying service to legitimate requests. The weaknesses, listed as CWE-407 and CWE-606, allow an adversary to exhaust a client’s processing resources without affecting confidentiality or integrity of data.

Affected Systems

The affected product is pydantic’s HTTPX2 client library. Versions from 2.5.0 up to but not including 2.10.0 are vulnerable. The issue was resolved in release 2.10.0, so any installation using a prior version is impacted.

Risk and Exploitability

The CVSS v3.1 score of 5.9 indicates moderate severity. EPSS data is not available, and the vulnerability is not listed in CISA’s KEV catalog. An attacker can exploit this flaw by controlling an SSE endpoint that the HTTPX2 client communicates with, or by compromising a third‑party endpoint that the client connects to. No elevated privileges are required; the condition is simply that the client processes SSE data. Given the moderate CVSS score and the absence of widespread exploitation data, the risk is considered moderate but still significant for systems where CPU usage is a critical resource.

Generated by OpenCVE AI on September 3, 2026 at 13:46 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade httpx2 to version 2.10.0 or later, which contains the patch that eliminates the quadratic buffering bug.
  • Ensure that the SSE streams processed by httpx2.Client.sse() or httpx2.AsyncClient.sse() originate from trusted and authenticated endpoints, reducing the chance that a malicious source can trigger the vulnerability.
  • If an upgrade is temporarily infeasible, run the httpx2 client in a CPU‑limited or isolated environment (e.g., container or virtual machine) to mitigate the impact of potential denial‑of‑service attacks.

Generated by OpenCVE AI on September 3, 2026 at 13:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
First Time appeared Pydantic
Pydantic httpx2
Vendors & Products Pydantic
Pydantic httpx2

Thu, 03 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-606
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 03 Sep 2026 08:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 02 Sep 2026 18:00:00 +0000

Type Values Removed Values Added
Description HTTPX2 is a next generation HTTP client for Python. From 2.5.0 until 2.10.0, the HTTPX2 Server-Sent Events parser in src/httpx2/httpx2/_sse.py repeatedly copies and rescans buffered text in _SSELineDecoder.decode() when an attacker-controlled or compromised SSE endpoint splits one unterminated line across many response chunks. The behavior affects httpx2.Client.sse() and httpx2.AsyncClient.sse(), and the total processing work grows quadratically with the line length, allowing a crafted stream to consume excessive CPU and block a synchronous worker or asynchronous event loop. This issue is fixed in version 2.10.0.
Title HTTPX2: Quadratic SSE line buffering can cause CPU denial of service
Weaknesses CWE-407
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-02T19:00:24.511Z

Reserved: 2026-09-01T16:27:58.130Z

Link: CVE-2026-84378

cve-icon Vulnrichment

Updated: 2026-09-02T19:00:21.442Z

cve-icon NVD

Status : Received

Published: 2026-09-02T18:21:29.153

Modified: 2026-09-02T19:18:07.907

Link: CVE-2026-84378

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-02T17:54:19Z

Links: CVE-2026-84378 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T15:34:07Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

  • CWE-606

    Unchecked Input for Loop Condition