Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-40561
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 07:10 UTC · Revision 1
Source evidence
Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence
core-osv · Original sourcePublished 3 May 2026, 00:57 UTC
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.
osv:CVE-2026-40561
Complete source record
{
"id": "895e8894edf4321301511cceb017032a07d67682ae2f7bd356bb34280366b090",
"url": "https://osv.dev/vulnerability/CVE-2026-40561",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence",
"summary": "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.",
"evidence": "osv:CVE-2026-40561",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-40561",
"aliases": [
"CVE-2026-40561"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/kazuho/starlet",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "a7d5dfd1862aafa43e5eaca0fdb6acf4cc15b2d0"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:kazuho:starlet:*:*:*:*:*:perl:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "0.31"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "a7d5dfd1862aafa43e5eaca0fdb6acf4cc15b2d0"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"0.31",
"0.30",
"0.29",
"0.28",
"0.27_01",
"0.26",
"0.25",
"0.24",
"0.23",
"0.22",
"0.21",
"0.20",
"0.18",
"0.17_01",
"0.16",
"0.15",
"0.14",
"0.13",
"0.12",
"0.11",
"0.10",
"0.08",
"0.07",
"0.05",
"0.04",
"0.01"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40561.json"
}
}
],
"modified": "2026-10-28T02:30:26.887659591Z",
"provider": "osv",
"references": [
"https://cpan.org/modules",
"https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.3",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40561.json",
"https://metacpan.org/release/KAZUHO/Starlet-0.32/changes",
"https://nvd.nist.gov/vuln/detail/CVE-2026-40561",
"https://github.com/kazuho/Starlet/commit/a7d5dfd1862aafa43e5eaca0fdb6acf4cc15b2d0.patch",
"https://github.com/kazuho/Starlet"
],
"provider_metadata": {
"cwe_ids": [
"CWE-444"
],
"cna_assigner": "CPANSec",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40561.json"
}
},
"related_cves": [
{
"value": "CVE-2026-40561",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493275,
"published_at": "2026-05-03T00:57:31.519+00:00"
}