Description
HTTPX2 is a next generation HTTP client for Python. Prior to 2.10.0, httpcore2 fails to start TLS in src/httpcore2/httpcore2/_sync/socks_proxy.py and src/httpcore2/httpcore2/_async/socks_proxy.py when the remote origin uses wss through a SOCKS5 proxy because the TLS upgrade condition only recognizes https. HTTPX2 exposes the flaw through Client.websocket() and AsyncClient.websocket() from 2.6.0 through 2.9.1, so the opening handshake, query parameters, Authorization headers, cookies, and subsequent frames can cross the proxy path in plaintext without certificate verification. An attacker controlling or observing that path can read or modify traffic and impersonate the WebSocket server. This issue is fixed in httpcore2 2.10.0 and HTTPX2 2.10.0.
Published: 2026-09-02
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

HTTPX2 uses httpcore2 to establish secure WebSocket connections via SOCKS proxies. The TLS upgrade logic in httpcore2 only recognizes URLs that start with https; connections using the wss scheme are therefore not upgraded. Consequently, the client creates a clear‑text WebSocket session through the proxy, sending the opening handshake, query parameters, Authorization headers, cookies, and all subsequent frames without encryption or server certificate verification. An attacker that can control or observe the proxy path can read, modify, or inject traffic, effectively impersonating the intended WebSocket server. This flaw aligns with CWE‑319, exposing a confidentiality and integrity risk.

Affected Systems

The affected libraries are pydantic:httpcore2 and pydantic:httpx2. Vulnerable versions include all releases of httpcore2 prior to 2.10.0 and HTTPX2 from 2.6.0 through 2.9.1. The issue was addressed in httpcore2 2.10.0 and HTTPX2 2.10.0, so any installation of these older releases is at risk.

Risk and Exploitability

The CVSS score of 8.1 labels this problem as high severity, yet no EPSS data is available and the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the attacker to have influence over or visibility into a SOCKS5 proxy used by the application, a condition common in many corporate or cloud environments. If such control is achieved, the attacker can intercept or alter WebSocket traffic and easily impersonate the server because no TLS handshake or certificate validation occurs. While the exploitation path is straightforward for users of the vulnerable library, the attack surface is limited to organizations that deploy unencrypted WebSocket traffic through third‑party proxies.

Generated by OpenCVE AI on September 3, 2026 at 10:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update httpcore2 and HTTPX2 to version 2.10.0 or later.
  • Re‑initialize any existing WebSocket clients after upgrading to ensure fresh connections.
  • Configure SOCKS5 proxies to require TLS termination or block plain‑text wss traffic to provide an additional layer of protection.

Generated by OpenCVE AI on September 3, 2026 at 10:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 05 Sep 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


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

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

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

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


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

Type Values Removed Values Added
Description HTTPX2 is a next generation HTTP client for Python. Prior to 2.10.0, httpcore2 fails to start TLS in src/httpcore2/httpcore2/_sync/socks_proxy.py and src/httpcore2/httpcore2/_async/socks_proxy.py when the remote origin uses wss through a SOCKS5 proxy because the TLS upgrade condition only recognizes https. HTTPX2 exposes the flaw through Client.websocket() and AsyncClient.websocket() from 2.6.0 through 2.9.1, so the opening handshake, query parameters, Authorization headers, cookies, and subsequent frames can cross the proxy path in plaintext without certificate verification. An attacker controlling or observing that path can read or modify traffic and impersonate the WebSocket server. This issue is fixed in httpcore2 2.10.0 and HTTPX2 2.10.0.
Title HTTPX2: Secure WebSocket traffic sent without TLS through SOCKS proxies
Weaknesses CWE-319
References
Metrics cvssV3_1

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


Subscriptions

Pydantic Httpcore2 Httpx2
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-05T01:03:38.291Z

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

Link: CVE-2026-84381

cve-icon Vulnrichment

Updated: 2026-09-05T01:03:34.034Z

cve-icon NVD

Status : Received

Published: 2026-09-02T19:18:08.217

Modified: 2026-09-05T01:16:49.517

Link: CVE-2026-84381

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-02T18:01:31Z

Links: CVE-2026-84381 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T15:33:55Z

Weaknesses
  • CWE-319

    Cleartext Transmission of Sensitive Information