{"id":"CVE-2026-54387","aliases":["DEBIAN-CVE-2026-54387","EUVD-2026-37789","GHSA-9667-7p67-2364","UBUNTU-CVE-2026-54387","openSUSE-SU-2026:11060-1","openSUSE-SU-2026:22133-1"],"status":"published","title":"Tinyproxy - HTTP Request Smuggling via CL/TE Desynchronization","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","severity":{"version":"4.0","score":9.3,"vector":"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","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00439,"percentile":0.38565,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-444"],"published":"2026-06-17T19:48:37Z","modified":"2026-11-09T02:47:23Z","affected":[{"source":"osv","ecosystem":"Debian:12","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.1-2.1","1.11.1-2.1+deb12u1","1.11.1-3","1.11.1-4","1.11.2-1","1.11.2-1~bpo12+1","1.11.3-1","1.11.3-1~bpo13+1"]},{"source":"osv","ecosystem":"Debian:13","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.2-1","1.11.3-1","1.11.3-1~bpo13+1"]},{"source":"osv","ecosystem":"Debian:14","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.2-1","1.11.3-1","1.11.3-1~bpo13+1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-3ubuntu1","1.8.3-3ubuntu14.04.1~esm1","1.8.3-3ubuntu14.04.1~esm2","1.8.3-3ubuntu14.04.1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-3ubuntu1","1.8.3-3ubuntu16.04.1~esm1","1.8.3-3ubuntu16.04.1~esm2","1.8.3-3ubuntu16.04.1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.4-2","1.8.4-3","1.8.4-5","1.8.4-5ubuntu0.1~esm1","1.8.4-5ubuntu0.1~esm2","1.8.4-5ubuntu0.1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.10.0-2","1.10.0-4","1.10.0-4ubuntu0.1","1.10.0-4ubuntu0.2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.10.0-5","1.11.0-1","1.11.0-1ubuntu0.1~esm1","1.11.0-1ubuntu0.1~esm2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.1-2.1","1.11.1-3","1.11.1-3ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.2-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.3-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.11.2-1","1.11.2-1build1","1.11.3-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.3-3.1"}]}],"bundled":3},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"tinyproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.3-bp160.2.1"}]}],"bundled":3}],"products":[{"vendor":"tinyproxy","product":"tinyproxy"},{"vendor":"tinyproxy project","product":"tinyproxy"}],"references":[{"url":"https://github.com/tinyproxy/tinyproxy/issues/609","tags":["issue-tracking","report"]},{"url":"https://github.com/tinyproxy/tinyproxy/pull/610","tags":["issue-tracking","patch","fix","report"]},{"url":"https://github.com/tinyproxy/tinyproxy/commit/ff45d3bf0e61d0f8ed97ab379d3047f04eb67521","tags":["patch","fix"]},{"url":"https://www.vulncheck.com/advisories/tinyproxy-http-request-smuggling-via-cl-te-desynchronization","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54387","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-9667-7p67-2364"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54387.json","tags":["advisory"]},{"url":"https://github.com/tinyproxy/tinyproxy","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-54387","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-54387","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-54387","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-54387","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-54388","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-55202","tags":["web"]},{"url":"https://bugzilla.suse.com/1268474","tags":["report"]},{"url":"https://bugzilla.suse.com/1268475","tags":["report"]},{"url":"https://bugzilla.suse.com/1268476","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-54387","title":"Tinyproxy - HTTP Request Smuggling via CL/TE Desynchronization","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T19:48:37.904Z","modified":"2026-11-08T14:05:19.774Z","cvss":[{"version":"4.0","score":9.3,"vector":"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","level":"critical","assessor":"cna"},{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna"}],"cwes":["CWE-444"],"updated_at":"2026-11-08T15:43:33.322657Z"}],"euvd":[{"id":"EUVD-2026-37789","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T19:48:37Z","modified":"2026-11-08T14:05:19Z","cvss":[{"version":"4.0","score":9.3,"vector":"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","level":"critical"}],"updated_at":"2026-11-08T15:13:08.252361Z"}],"ghsa":[{"id":"GHSA-9667-7p67-2364","title":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length...","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T21:34:39Z","modified":"2026-06-17T21:34:45Z","cvss":[{"version":"4.0","score":9.3,"vector":"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/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","level":"critical"},{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:08:53.737891Z"}],"nvd":[{"id":"CVE-2026-54387","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T20:17:27.48Z","modified":"2026-07-14T22:17:16.293Z","cvss":[{"version":"4.0","score":9.3,"vector":"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/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","level":"critical","assessor":"secondary"},{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:12:24.544761Z"}],"osv":[{"id":"CVE-2026-54387","title":"Tinyproxy - HTTP Request Smuggling via CL/TE Desynchronization","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T19:48:37.904Z","modified":"2026-11-09T07:04:14.781211443Z","cvss":[{"version":"4.0","score":9.3,"vector":"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","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-09T03:16:17.543303Z"},{"id":"DEBIAN-CVE-2026-54387","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T20:17:27.48Z","modified":"2026-10-01T03:03:26.393986179Z","cvss":[{"version":"4.0","score":9.3,"vector":"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/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","level":"critical"}],"updated_at":"2026-11-02T15:45:57.236551Z"},{"id":"UBUNTU-CVE-2026-54387","description":"Tinyproxy through 1.11.3, fixed in commit ff45d3b, fails to reconcile conflicting Content-Length and Transfer-Encoding: chunked headers, forwarding both verbatim to the backend while using Content-Length 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.","status":"published","published":"2026-06-17T20:17:00Z","modified":"2026-10-17T12:58:36.159534013Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"},{"version":"4.0","score":9.3,"vector":"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","level":"critical"}],"updated_at":"2026-11-02T16:56:41.382716Z"},{"id":"openSUSE-SU-2026:11060-1","title":"tinyproxy-1.11.3-3.1 on GA media","description":"These are all security issues fixed in the tinyproxy-1.11.3-3.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-06-18T00:00:00Z","modified":"2026-06-19T08:15:05.714639953Z","updated_at":"2026-11-02T16:58:38.95195Z"},{"id":"openSUSE-SU-2026:22133-1","title":"Security update for tinyproxy","description":"This update for tinyproxy fixes the following issues:\n\nChanges in tinyproxy:\n\n- Fixed failure to reconcile conflicting Content-Length and Transfer-Encoding [boo#1268474, CVE-2026-54387]\n- Fixed failure to reject requests containing multiple Content-Length headers with differing values [boo#1268475, CVE-2026-54388]\n- Fixed failure to properly validate the Host header during stathost detection [boo#1268476, CVE-2026-55202]\n","status":"published","published":"2026-10-19T16:26:02Z","modified":"2026-10-20T19:15:03.958123867Z","updated_at":"2026-11-02T16:58:42.426393Z"}]}}
