p PatchFirst

CVE-2026-84380

CVE-2026-84380 · HTTPX2: Conflicting Content-Length and Transfer-Encoding headers can be auto-generated

This page contains facts from public vulnerability sources. Check the original advisory before updating.

HTTPX2 is a next generation HTTP client for Python. Prior to 2.11.0, Request._prepare() in src/httpx2/httpx2/_models.py can add a body-derived Content-Length header to a request that already contains a caller-supplied Transfer-Encoding header because its setdefault() processing checks each default header independently rather than treating the two framing headers as mutually exclusive. Fixed-size byte, JSON, form, and known-length multipart bodies can therefore be serialized over HTTP/1.1 with both headers, allowing request smuggling or connection desynchronization when downstream intermediaries disagree about which framing header takes precedence. This issue is fixed in version 2.11.0.

CVSS 5.6 · Medium · EPSS 0.2% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • httpx2

    Versions
    • < 2.11.0: Affected

    No fix published

  • python-httpx2 Debian:14

    Versions
    • 2.4.0-1
    • 2.5.0-1
    Affected ranges
    • ECOSYSTEM: < 2.12.0-1

    Update to 2.12.0-1

  • httpx2 PyPI

    Versions
    • 0.0.0
    • 2.0.0
    • 2.0.0b1
    • 2.1.0
    • 2.10.0
    • 2.2.0
    • 2.3.0
    • 2.4.0
    • 2.5.0
    • 2.6.0
    • 2.7.0
    • 2.8.0
    • 2.9.0
    • 2.9.1
    Affected ranges
    • ECOSYSTEM: < 2.11.0

    Update to 2.11.0

  • python-httpx2 Ubuntu:26.10

    Versions
    • 2.5.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →