Description
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.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Confidentiality (Vulnerable System)
High
Integrity (Vulnerable System)
High
Availability (Vulnerable System)
None
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
CVSS 3.1
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None
Affected products
- tinyproxy / tinyproxy0 – 1.11.3
- tinyproxy / tinyproxy364cdb67e0ea00a8e4a7037e2693e0711e816adb – 364cdb67e0ea00a8e4a7037e2693e0711e816adb
References
- MISChttps://github.com/tinyproxy/tinyproxy/issues/609
- PATCHhttps://github.com/tinyproxy/tinyproxy/pull/610
- PATCHhttps://github.com/tinyproxy/tinyproxy/commit/364cdb67e0ea00a8e4a7037e2693e0711e816adb
- VENDOR_ADVISORYhttps://www.vulncheck.com/advisories/tinyproxy-http-request-smuggling-via-duplicate-content-length-headers