CVE-2026-115823: Starman versions before 0.4019 for Perl send response bodies for HEAD requests, desynchronizing responses on keep-alive connections Robert Rothenberg 25 Oct 2026 16:55 UTC

========================================================================
CVE-2026-115823                                      CPAN Security Group
========================================================================

         CVE ID:  CVE-2026-115823

   Distribution:  Starman
       Versions:  before 0.4019
       MetaCPAN:  https://metacpan.org/dist/Starman
       VCS Repo:  https://github.com/miyagawa/Starman

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.

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.

Problem types
-------------
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP
   Request/Response Smuggling')

Workarounds
-----------
For deployments that cannot upgrade to 0.4019, enable
Plack::Middleware::Head, which removes the body from HEAD responses.

Solutions
---------
Upgrade to Starman 0.4019 or later.

References
----------
https://github.com/miyagawa/Starman/commit/91c47c529cd1e100f938486896ea9083ec3ec7bf.patch
https://metacpan.org/release/MIYAGAWA/Starman-0.4019/changes