Twisted is an event-based framework for internet applications, supporting Python 3.6+. Prior to 26.10.0rc1, twisted.web.http.HTTPChannel.headerReceived rejects a NUL byte in an HTTP header value but accepts a bare carriage return or bare line feed. Because Twisted splits header lines only on CRLF, a hidden Content-Length header can remain folded into another value while a lenient front end treats the bare character as a line terminator. The resulting framing disagreement can smuggle a following request past front-end access controls, poison a shared connection or cache, and expose a later client to the wrong response. This issue is an incomplete-fix residual of earlier Twisted request-smuggling protections. This issue is fixed in version 26.10.0rc1.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-444"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115877.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "26.10.0rc1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
},
{
"extracted_events": [
{
"range": [
{
"introduced": "3.6+"
},
{
"fixed": "26.10.0rc1"
},
{
"fixed": "26.10.0rc1"
}
],
"source": "DESCRIPTION"
}
]
}
]
}{
"extracted_events": [
{
"range": [
{
"fixed": "022b6f7feb5980166c71f54e2c0d8f4f21ff6e1a"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "1616f702d36eda8990a5a5b22ad70fab140a7eb1"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "twisted-26.10.0rc1",
"range": [
{
"fixed": "875d118c9a82a4f55a92ff399bd31f8928a52ad3"
}
],
"source": "REFERENCES_TAG"
}
]
}