PT-2026-30811 · Tinyproxy+3 · Tinyproxy
CVSS v4.0
8.7
High
| Vector | AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Name of the Vulnerable Software and Affected Versions
Tinyproxy versions prior to 1.11.4
Description
HTTP request parsing desynchronization occurs due to a case-sensitive comparison of the
Transfer-Encoding header in src/reqs.c. The is chunked transfer() function uses strcmp() to compare the header value against "chunked", contradicting RFC 7230 which specifies that transfer-coding names are case-insensitive. An unauthenticated remote attacker can send a request with Transfer-Encoding: Chunked, causing the software to misinterpret the request as having no body. Consequently, the system sets content length.client to -1, skips pull client data chunked(), forwards headers upstream, and enters relay connection() raw TCP forwarding while body data remains buffered. This creates an inconsistent state where RFC-compliant backends continue waiting for chunked data, leading to application-level denial of service via backend worker exhaustion. Furthermore, if the software is used for request-body inspection or filtering, the unread body may be forwarded without inspection, allowing a security control bypass.Recommendations
At the moment, there is no information about a newer version that contains a fix for this vulnerability.
Exploit
DoS
HTTP Request/Response Smuggling
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Tinyproxy