{"id":"CVE-2026-40561","aliases":["ALPINE-CVE-2026-40561","DEBIAN-CVE-2026-40561","EUVD-2026-26806","GHSA-2xqx-75wg-w86v","MGASA-2026-0120","UBUNTU-CVE-2026-40561"],"status":"published","title":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-09","score":0.00364,"percentile":0.30425,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-444"],"published":"2026-05-03T00:57:31Z","modified":"2026-11-03T06:33:02Z","fixes":[{"ecosystem":"Alpine:v3.23","package":"perl-starlet","fixed_in":["0.32-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"perl-starlet","fixed_in":["0.32-r0"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"starlet","fixed_in":["0.31-2+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"starlet","fixed_in":["0.31-3"],"sources":["osv"]},{"ecosystem":"Mageia:9","package":"perl-Starlet","fixed_in":["0.310.0-4.1.mga9"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.23","package":"perl-starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.32-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"perl-starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.32-r0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-2","0.31-3","0.32-1"]},{"source":"osv","ecosystem":"Debian:13","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.31-2+deb13u1"}]}],"versions":["0.31-2"]},{"source":"osv","ecosystem":"Debian:14","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.31-3"}]}],"versions":["0.31-2"]},{"source":"osv","ecosystem":"Mageia:9","package":"perl-Starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.310.0-4.1.mga9"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.25-1","0.26-1","0.28-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-1.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-2build1","0.31-3","0.32-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"starlet","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.31-2","0.31-2build1"]}],"products":[{"vendor":"kazuho","product":"starlet"}],"references":[{"url":"https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.3","tags":["Third Party Advisory","web"]},{"url":"https://github.com/kazuho/Starlet/commit/a7d5dfd1862aafa43e5eaca0fdb6acf4cc15b2d0.patch","tags":["patch","Patch","fix"]},{"url":"https://metacpan.org/release/KAZUHO/Starlet-0.32/changes","tags":["release-notes","advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2026/05/03/1","tags":["Mailing List","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40561","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-2xqx-75wg-w86v"},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-40561","tags":["advisory"]},{"url":"https://cpan.org/modules","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40561.json","tags":["advisory"]},{"url":"https://github.com/kazuho/Starlet","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-40561","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0120.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35464","tags":["report"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/03/1","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-40561","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-40561","tags":["report"]},{"url":"https://lists.security.metacpan.org/cve-announce/msg/39593408/","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-40561","title":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T00:57:31.519Z","modified":"2026-05-07T16:45:01.655Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"adp"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T13:43:11.445168Z"}],"euvd":[{"id":"EUVD-2026-26806","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T00:57:31Z","modified":"2026-05-07T16:45:01Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T19:05:14.902845Z"}],"ghsa":[{"id":"GHSA-2xqx-75wg-w86v","title":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header...","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T03:30:28Z","modified":"2026-05-07T18:31:39Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:07:57.010667Z"}],"nvd":[{"id":"CVE-2026-40561","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T01:15:58.39Z","modified":"2026-10-26T20:10:00.16Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:12:17.022502Z"}],"osv":[{"id":"ALPINE-CVE-2026-40561","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T01:15:58.39Z","modified":"2026-11-03T06:33:02.70813545Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T07:15:53.944853Z"},{"id":"CVE-2026-40561","title":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.\n\nStarlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.\n\nAn attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T00:57:31.519Z","modified":"2026-10-28T02:30:26.887659591Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:45:03.424067Z"},{"id":"DEBIAN-CVE-2026-40561","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.  Starlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence.  An attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T01:15:58.39Z","modified":"2026-10-27T09:47:37.544523824Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:54.892385Z"},{"id":"UBUNTU-CVE-2026-40561","description":"Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence. Starlet incorrectly prioritizes \"Content-Length\" over \"Transfer-Encoding: chunked\" when both headers are present in an HTTP request. Per RFC 7230 3.3.3, Transfer-Encoding must take precedence. An attacker could exploit this to smuggle malicious HTTP requests via a front-end reverse proxy.","status":"published","published":"2026-05-03T01:15:00Z","modified":"2026-10-17T12:58:53.774975311Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:56:16.686388Z"},{"id":"MGASA-2026-0120","title":"Updated perl-Starlet packages fix security vulnerability","description":"Starlet versions through 0.31 for Perl allow HTTP Request Smuggling via\nImproper Header Precedence. (CVE-2026-40561)\n","status":"published","published":"2026-05-07T05:06:13Z","modified":"2026-05-07T05:15:26.980052Z","updated_at":"2026-11-02T15:49:43.178336Z"}]}}
