{"id":"CVE-2026-115823","state":"PUBLISHED","title":"Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections","description":"Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections.\n\nFor a HEAD request Starman omits chunked framing but still writes the body returned by the application, on both the array and streaming response paths. Responses with a 1xx, 204 or 304 status also carry the body.\n\nOn a keep-alive or pipelined connection the client reads those bytes as the start of the next response. A front-end proxy that reuses upstream connections may then pair responses with the wrong requests.","publishedAt":"2026-10-25T16:51:19.961Z","updatedAt":"2026-10-25T16:51:19.961Z","severity":null,"assigner":"CPANSec","products":["Starman"],"affected":[{"packageName":"Starman","packageURL":"pkg:cpan/Starman","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"0.4019","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Starman"],"programFiles":["lib/Starman/Server.pm"],"programRoutines":[{"name":"Starman::Server::_finalize_response"}],"repo":"https://github.com/miyagawa/Starman"}],"references":["https://github.com/miyagawa/Starman/commit/91c47c529cd1e100f938486896ea9083ec3ec7bf.patch","https://metacpan.org/release/MIYAGAWA/Starman-0.4019/changes"],"weaknesses":["CWE-444"],"ingestedAt":"2026-10-29T20:10:43.281Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/115xxx/CVE-2026-115823.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-115823","state":"PUBLISHED","datePublished":"2026-10-25T16:51:19.961Z","dateUpdated":"2026-10-25T16:51:19.961Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-10-23T16:47:20.192Z"},"containers":{"cna":{"title":"Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections","descriptions":[{"lang":"en","value":"Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections.\n\nFor a HEAD request Starman omits chunked framing but still writes the body returned by the application, on both the array and streaming response paths. Responses with a 1xx, 204 or 304 status also carry the body.\n\nOn a keep-alive or pipelined connection the client reads those bytes as the start of the next response. A front-end proxy that reuses upstream connections may then pair responses with the wrong requests."}],"affected":[{"packageName":"Starman","packageURL":"pkg:cpan/Starman","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"0.4019","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Starman"],"programFiles":["lib/Starman/Server.pm"],"programRoutines":[{"name":"Starman::Server::_finalize_response"}],"repo":"https://github.com/miyagawa/Starman"}],"references":[{"url":"https://github.com/miyagawa/Starman/commit/91c47c529cd1e100f938486896ea9083ec3ec7bf.patch","tags":["patch"]},{"url":"https://metacpan.org/release/MIYAGAWA/Starman-0.4019/changes","tags":["release-notes"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-444","description":"CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-10-25T16:51:19.961Z"},"solutions":[{"lang":"en","value":"Upgrade to Starman 0.4019 or later."}],"source":{"discovery":"UNKNOWN"},"workarounds":[{"lang":"en","value":"For deployments that cannot upgrade to 0.4019, enable Plack::Middleware::Head, which removes the body from HEAD responses."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}}}}}