{"document":{"category":"csaf_vex","csaf_version":"2.0","title":"CVE-2026-54388: Tinyproxy - HTTP Request Smuggling via Duplicate Content-Length Headers","publisher":{"category":"vendor","name":"HarborGuard Database","namespace":"https://database.harborguard.co"},"tracking":{"id":"CVE-2026-54388","status":"final","version":"1","initial_release_date":"2026-06-17T19:59:00.000Z","current_release_date":"2026-06-17T19:59:00.000Z","revision_history":[{"date":"2026-06-17T19:59:00.000Z","number":"1","summary":"Initial machine-readable export from HarborGuard."}]},"distribution":{"tlp":{"label":"WHITE"},"text":"Public CVE data; freely redistributable."},"notes":[{"category":"description","text":"Tinyproxy through 1.11.3, fixed in commit 364cdb6, fails to reject requests containing multiple Content-Length headers with differing values, forwarding all duplicate headers to the backend while using the first value to determine how many request body bytes to consume. Remote attackers can desynchronize the proxy and backend parser state, allowing injection of arbitrary HTTP requests to the backend to enable cache poisoning, access control bypass, and request hijacking.","title":"CVE description"}],"references":[{"category":"self","summary":"CVE-2026-54388 on HarborGuard Database","url":"https://database.harborguard.co/cve/CVE-2026-54388"},{"category":"external","summary":"CVE Record","url":"https://www.cve.org/CVERecord?id=CVE-2026-54388"},{"category":"external","summary":"Researcher Pull Request","url":"https://github.com/tinyproxy/tinyproxy/issues/609"},{"category":"external","summary":"Maintainer Pull Request","url":"https://github.com/tinyproxy/tinyproxy/pull/610"},{"category":"external","summary":"Patch Commit","url":"https://github.com/tinyproxy/tinyproxy/commit/364cdb67e0ea00a8e4a7037e2693e0711e816adb"},{"category":"external","summary":"vulncheck.com","url":"https://www.vulncheck.com/advisories/tinyproxy-http-request-smuggling-via-duplicate-content-length-headers"}]},"product_tree":{"branches":[{"category":"vendor","name":"tinyproxy","branches":[{"category":"product_name","name":"tinyproxy","branches":[{"category":"product_version_range","name":"<=1.11.3","product":{"name":"tinyproxy tinyproxy <=1.11.3","product_id":"CSAFPID-1","product_identification_helper":{"cpe":"cpe:2.3:a:tinyproxy:tinyproxy:*:*:*:*:*:*:*:*"}}},{"category":"product_version","name":"364cdb67e0ea00a8e4a7037e2693e0711e816adb","product":{"name":"tinyproxy tinyproxy 364cdb67e0ea00a8e4a7037e2693e0711e816adb","product_id":"CSAFPID-2","product_identification_helper":{"cpe":"cpe:2.3:a:tinyproxy:tinyproxy:*:*:*:*:*:*:*:*"}}}]}]}]},"vulnerabilities":[{"cve":"CVE-2026-54388","title":"Tinyproxy - HTTP Request Smuggling via Duplicate Content-Length Headers","notes":[{"category":"description","text":"Tinyproxy through 1.11.3, fixed in commit 364cdb6, fails to reject requests containing multiple Content-Length headers with differing values, forwarding all duplicate headers to the backend while using the first value to determine how many request body bytes to consume. Remote attackers can desynchronize the proxy and backend parser state, allowing injection of arbitrary HTTP requests to the backend to enable cache poisoning, access control bypass, and request hijacking.","title":"CVE description"}],"product_status":{"known_affected":["CSAFPID-1"],"fixed":["CSAFPID-2"]},"scores":[{"cvss_v4":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","baseScore":9.3,"baseSeverity":"CRITICAL"},"products":["CSAFPID-1"]}],"remediations":[{"category":"vendor_fix","details":"Update to a fixed version: 364cdb67e0ea00a8e4a7037e2693e0711e816adb.","product_ids":["CSAFPID-1"],"url":"https://github.com/tinyproxy/tinyproxy/commit/364cdb67e0ea00a8e4a7037e2693e0711e816adb"}]}]}