Starlet for Perl sends bodies to HEAD requests, desyncing connections
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA.
Summary
Starlet for Perl before 0.33 sends a response body to HEAD requests and to 204 and 304 responses, because the request method is not passed to the response writer (CWE-444). Pipelined GET and HEAD requests keep the connection open even with keep-alive disabled, so a remote attacker with no privileges or user interaction can leave extra bytes that a client or proxy reads as the start of the next response. A proxy that shares the connection across clients can be desynchronized.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Starlet versions before 0.33 for Perl send a body in responses to HEAD requests, corrupting the next response on a persistent or pipelined connection. The request method is not passed to the response writer, so whatever body the application returns for a HEAD request is sent. With Plack::Middleware::Head the body is empty, but an HTTP/1.1 response without a Content-Length header still gets the chunked encoding terminator. Responses with status 204 or 304 are also sent with their body. Pipelined GET and HEAD requests keep the connection open even when keep-alive is disabled, which is the default. A client or proxy reading the connection takes the extra bytes as the start of the next response, which may desynchronize a proxy that shares the connection across clients.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | Starlet | before 0.33 | 0.33 | Patch available | CNA |
- Starlet Vendor— Affected before 0.33 Fixed in 0.33 Patch available CNA
Remediation
Upgrade Starlet to version 0.33 or later.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA Starlet Fixed in 0.33
Vendor assessments
Timeline
- 2026-10-30 Threatist record created from CVE-2026-116127
- 2026-10-30 Alias added: GHSA-2pgg-pmmw-6882
- 2026-10-30 Affected versions changed · Red Hat
- 2026-10-30 CVSS score added · Red Hat
- 2026-11-06 CVSS score added · CISA ADP
- 2026-11-06 CISA SSVC decision points changed
- 2026-11-06 Priority changed: LOW → MEDIUM
References
Sources
- CVE-2026-116127 · CVE Program
- CVE-2026-116127 · NVD
- FIRST EPSS
- GHSA-2pgg-pmmw-6882 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-116127 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences