7.5 CVE-2026-31842

Enriched by CISA
 

Tinyproxy through 1.11.3 is vulnerable to HTTP request parsing desynchronization 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", even though RFC 7230 specifies that transfer-coding names are case-insensitive. By sending a request with Transfer-Encoding: Chunked, an unauthenticated remote attacker can cause Tinyproxy to misinterpret the request as having no body. In this state, Tinyproxy sets content_length.client to -1, skips pull_client_data_chunked(), forwards request headers upstream, and transitions into relay_connection() raw TCP forwarding while unread body data remains buffered. This leads to inconsistent request state between Tinyproxy and backend servers. RFC-compliant backends (e.g., Node.js, Nginx) will continue waiting for chunked body data, causing connections to hang indefinitely. This behavior enables application-level denial of service through backend worker exhaustion. Additionally, in deployments where Tinyproxy is used for request-body inspection, filtering, or security enforcement, the unread body may be forwarded without proper inspection, resulting in potential security control bypass.
https://nvd.nist.gov/vuln/detail/CVE-2026-31842

Categories

CWE-444 : Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent(such as a proxy or firewall) in the data flow between twoentities such as a client and server, but it does notinterpret malformed HTTP requests or responses in ways thatare consistent with how the messages will be processed bythose entities that are at the ultimate destination. Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.) Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433]. Use only SSL communication. Terminate the client session after each request. Turn all pages to non-cacheable. SSL/TLS-capable proxy allows HTTP smuggling when used in tandem with HTTP/1.0 services, due to inconsistent interpretation and input sanitization of HTTP messages within the body of another message Chain: caching proxy server has improper input validation (CWE-20) of headers, allowing HTTP response smuggling (CWE-444) using an "LF line ending" Node.js platform allows request smuggling via two Transfer-Encoding headers Web servers allow request smuggling via inconsistent HTTP headers. HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header

References


 

AFFECTED (from MITRE)


Vendor Product Versions
Tinyproxy Project Tinyproxy
  • ≤ 1.11.3 [affected]
© 2022 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation.

CPE

cpe start end


REMEDIATION




EXPLOITS


Exploit-db.com

id description date
No known exploits

POC Github

Url
No known exploits

Other Nist (github, ...)

Url
No known exploits


CAPEC


Common Attack Pattern Enumerations and Classifications

id description severity
273 HTTP Response Smuggling
High
33 HTTP Request Smuggling
High