CVE-2026-115877 in Twistedinfo

Summary

by MITRE • 10/24/2026

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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/24/2026

The vulnerability identified within the Twisted event-based framework for internet applications, specifically affecting versions prior to 26.10.0rc1 on Python 3.6 and above, represents a critical HTTP request smuggling flaw rooted in inconsistent header parsing logic. The core technical deficiency lies in how the twisted.web.http.HTTPChannel component handles line terminators within HTTP headers. While the framework correctly rejects NUL bytes in header values to prevent certain injection attacks, it erroneously accepts bare carriage return characters or bare line feed characters as valid content rather than treating them strictly as delimiters for new lines. This inconsistency creates a significant parsing ambiguity because Twisted is designed to split header lines exclusively on the standard CRLF sequence. Consequently, when an attacker injects a raw CR or LF character into a header value, the framework does not interpret this as the end of the current line but instead treats it as part of the ongoing data stream until a full CRLF pair is encountered.

This parsing discrepancy leads to severe operational impacts due to framing disagreements between Twisted and lenient front-end proxies or load balancers that may adhere more strictly to RFC standards regarding header termination. In this scenario, an attacker can craft a malicious HTTP request containing hidden headers by utilizing bare line terminators. Because the front end interprets the bare character as a valid line break while Twisted does not, it is possible for a subsequent legitimate request to be smuggled past access controls that rely on the front-end's interpretation of message boundaries. This effectively allows an attacker to bypass authentication mechanisms or authorization checks by making their malicious payload appear as part of a previous, authorized request from the perspective of the backend server running Twisted.

The consequences extend beyond simple access control evasion and include cache poisoning and response injection attacks. By manipulating how headers are framed, an adversary can poison shared caches associated with specific URLs or user sessions, causing subsequent clients to receive responses intended for other users or containing malicious content injected by the attacker. Furthermore, this flaw exposes later clients to incorrect responses as the connection state becomes desynchronized between the proxy and the application server. This situation is particularly dangerous in high-throughput environments where connections are reused, amplifying the potential blast radius of a single successful exploitation attempt across multiple user sessions or services sharing the same backend infrastructure.

This vulnerability should be classified under CWE-436, which denotes Interpretation Conflict, as the root cause is the differing interpretation of input data between two components in the request path. It also aligns with MITRE ATT&CK technique T1105, Ingress Tool Transfer, and potentially T1071, Application Layer Protocol, specifically within the context of HTTP smuggling variants such as CL.TE or TE.CL attacks where framing ambiguity is exploited to bypass security controls. The issue was identified as a residual flaw from earlier attempts to harden Twisted against request-smuggling vectors, indicating that previous mitigations were incomplete and failed to account for edge cases involving non-standard line terminators within header values.

To mitigate this vulnerability, organizations must upgrade the Twisted framework to version 26.10.0rc1 or later, where the parsing logic has been corrected to strictly reject bare carriage return and line feed characters in HTTP headers just as it does for NUL bytes. In addition to upgrading dependencies, security teams should implement strict input validation at the network perimeter using Web Application Firewalls configured to detect and block raw CR or LF characters within header fields before they reach the application server. It is also advisable to configure front-end proxies to operate in a mode that strictly enforces RFC-compliant HTTP parsing, ensuring that any deviation from standard CRLF line endings results in an immediate connection reset rather than ambiguous interpretation. Regular security audits and static code analysis focused on HTTP message handling should be conducted to identify similar inconsistencies in custom networking libraries or middleware components.

Responsible

GitHub M

Reservation

10/23/2026

Disclosure

10/24/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!