{"id":"CVE-2026-31842","summary":"Tinyproxy HTTP request parsing desynchronization via case-sensitive Transfer-Encoding handling","details":"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.","modified":"2026-07-15T01:49:06.014188202Z","published":"2026-04-07T11:17:33.621Z","database_specific":{"cwe_ids":["CWE-444"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31842.json","cna_assigner":"TuranSec"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31842.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31842"},{"type":"REPORT","url":"https://github.com/tinyproxy/tinyproxy/issues/604"},{"type":"PACKAGE","url":"https://github.com/tinyproxy/tinyproxy"},{"type":"ARTICLE","url":"https://datatracker.ietf.org/doc/html/rfc7230"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/tinyproxy/tinyproxy","events":[{"introduced":"0"},{"last_affected":"baecbf4c3e006fa68ab92f65bbd4138c47ede111"}],"database_specific":{"cpe":"cpe:2.3:a:tinyproxy_project:tinyproxy:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"last_affected":"1.11.3"}],"source":["AFFECTED_FIELD","CPE_RANGE"]}}],"versions":["1.11.3","1.11.2","1.11.1","1.11.0","1.11.0-rc1","1.10.0","1.8.0","1.7.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31842.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}