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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-444"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84380.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "2.11.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "829b93a2393212996f613e635261f777d9ec6eab"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v2.11.0",
"range": [
{
"fixed": "2b13fa92e4181d5e0f56772205360b2aa12f109d"
}
],
"source": "REFERENCES_TAG"
}
]
}