CVE-2026-115823
UnknownSummary
Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections. Bodies are also sent for 1xx, 204, and 304 statuses. A client or proxy may read those bytes as the start of the next response.
Risk Assessment
Response desynchronization can cause responses to be paired with the wrong requests, risking data leakage or response poisoning through intermediary proxies.
Recommendation
Update Starman to version 0.4019 or later. Review proxy configuration for upstream connection reuse.
Other vulnerabilities in Starman
See all- CVE-2026-115824Unknown
Starman versions before 0.4019 for Perl allow memory exhaustion via unbounded buffering of chunked request bodies. The decoder does not limit chunk-size line length or buffer size. A remote attacker can exhaust worker memory with a single connection.
- CVE-2026-115822Unknown
Starman versions before 0.4019 for Perl allow CPU exhaustion via quadratic regex backtracking when parsing chunked request bodies. A hex line followed by a bare LF and CRLF never matches, and each attempt backtracks quadratically. Line length is unbounded.
- CVE-2026-115817Unknown
Starman versions before 0.4019 for Perl allow a stalled request body to hold a worker indefinitely, as read_timeout covers only headers. Bodies are read with blocking reads and no deadline. An attacker can occupy all workers with a few connections.
- CVE-2026-40560High
Starman for Perl before version 0.4018 is vulnerable to HTTP Request Smuggling due to improper header precedence. Starman incorrectly prioritizes Content-Length over Transfer-Encoding: chunked, violating RFC 7230. An attacker can exploit this to smuggle malicious HTTP requests through a front-end reverse proxy.
Original NVD description (English source)
Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections. For 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. On 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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

