Starman
CVE-2026-40560
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify site with Starman behind proxy
-
DeliveryCraft request with both CL and TE:chunked
-
ExploitProxy and Starman disagree on boundaries
-
ExecutionSmuggle trailing bytes into next request
-
ImpactPoison victim request / capture data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
|
| Exploitation Conditions | Exploitation requires Starman (version < 0.4018) to be deployed behind a front-end reverse proxy or load balancer that interprets the conflicting Content-Length and Transfer-Encoding: chunked headers differently than Starman does - this proxy/backend parsing disagreement is the essential precondition, not merely 'network access.' The attacker sends an unauthenticated HTTP request (PR:N, no user interaction) containing both a Transfer-Encoding: chunked body and a mismatched Content-Length. Limiting factors: a bare Starman with no fronting proxy that would re-parse the request is not smuggling-exploitable in the classic sense; the attack's success depends on the specific header-handling behavior of the deployed proxy, and proxies that reject or normalize dual-length requests neutralize it. There is no authentication or special user privilege requirement, but the deployment-topology dependency (vulnerable proxy pairing) is what makes real-world exploitation non-universal. |
| Impact | Signals are mixed and lean toward moderate, environment-dependent risk rather than an urgent, broadly exploitable emergency. The NVD CVSS 3.1 base score is 7.5 (AV:N/AC:L/PR:N/UI:N/C:H/I:N/A:N), reflecting unauthenticated network reach and confidentiality impact from stealing smuggled requests. However, EPSS is only 0.02% (5th percentile) and CISA SSVC lists Exploitation: none, Automatable: yes, Technical Impact: partial - so while automation is feasible, no exploitation is currently observed and it is not on the KEV list. A key nuance the NVD vector understates: request smuggling is only practically exploitable when Starman is deployed behind a front-end proxy whose parsing disagrees with Starman's, which is a real limiting factor arguing for higher attack complexity than AC:L suggests. The NVD scoring of C:H/I:N is also debatable: smuggling typically enables request manipulation (integrity) as much as disclosure, and the vendor tags include both 'Information Disclosure' and 'Request Smuggling' - treat the impact profile as covering both confidentiality and integrity. Net: a legitimate patch-soon issue for internet-facing Perl stacks, not a drop-everything zero-day. |
| Exploit ScenarioDerived | An attacker sends a single crafted POST to a public site fronted by a reverse proxy, including both Content-Length and Transfer-Encoding: chunked so the proxy frames the request one way while Starman frames it another. The trailing bytes Starman leaves in the connection buffer are prepended to the next legitimate user's request, letting the attacker poison that request, bypass front-end access controls, or capture victim data. No public exploit is identified at time of analysis, though the fix commit ships a proof-of-concept-style regression test demonstrating the desync behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
HTTP request smuggling in Starman, the preforking Perl PSGI/Plack web server, affects all releases before 0.4018 due to incorrect header precedence (CWE-444): when a request carries both Content-Length and Transfer-Encoding: chunked, Starman honors Content-Length instead of chunked encoding, violating RFC 7230 §3.3.3. When Starman sits behind a front-end reverse proxy that resolves the ambiguity differently, an attacker can desynchronize the two parsers to smuggle requests, poison the request queue, and capture or manipulate other users' traffic. There is no public exploit identified at time of analysis, EPSS is very low (0.02%), and CISA SSVC records exploitation status as none, but a vendor patch is available in version 0.4018.
RemediationAI
Vendor-released patch: upgrade to Starman 0.4018 or later, which reorders header handling so Transfer-Encoding: chunked takes precedence over Content-Length (fix commit ced205f, changelog at https://metacpan.org/release/MIYAGAWA/Starman-0.4018/changes). On Debian/Ubuntu, apply the distribution's patched package rather than relying on the CPAN version. If you cannot upgrade immediately, the most effective compensating control is at the front-end reverse proxy: configure the proxy to normalize or reject ambiguous requests that contain both Content-Length and Transfer-Encoding headers (for example, drop such requests or strip Transfer-Encoding), and ensure the proxy does not forward chunked bodies to Starman in a way that lets the two parsers disagree - the trade-off is that legitimate but unusual chunked clients may be rejected. Additionally, avoid exposing Starman directly to untrusted networks without a hardening proxy. Review the oss-security notice http://www.openwall.com/lists/oss-security/2026/04/29/1 and VulDB entry https://vuldb.com/vuln/360091 for advisory detail.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Starman is a high-performance preforking PSGI/Plack HTTP server for Perl (CPE cpe:2.3:a:miyagawa:starman), widely used to run Perl web applications behind reverse proxies such as nginx or Apache. The flaw is a classic TE.CL / CL.TE request-smuggling condition rooted in CWE-444 (Inconsistent Interpretation of HTTP Requests). RFC 7230 §3.3.3 requires that when both Transfer-Encoding and Content-Length are present, Transfer-Encoding must take precedence and Content-Length must be ignored (or the message rejected). The vulnerable code in lib/Starman/Server.pm (_prepare_env) evaluated Content-Length first in an if/elsif chain, so a chunked body with a deliberately wrong Content-Length was framed by the CONTENT_LENGTH value rather than by chunk decoding. The fix (commit ced205f) reorders the logic so the $chunked branch is tested before the Content-Length branch, and adds regression test t/te_cl_precedence.t which sends a chunked 'Hello World' body with Content-Length: 5 and asserts the full body is read.
Know when Starman gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Unauthenticated remote (AV:N/PR:N), but AC:H because success depends on a front-end proxy that parses the dual headers differently; smuggling enables both disclosure and request manipulation, so C:H/I:H.
Primary rating from Vendor (9b29abf9-4ab0-4765-b253-1875cd9b441e).
CVSS VectorVendor: 9b29abf9-4ab0-4765-b253-1875cd9b441e
Lifecycle Timeline
3DescriptionCVE.org
Starman versions before 0.4018 for Perl allows HTTP Request Smuggling via Improper Header Precedence.
Starman 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.
Executive ViewAI
Starman web server before version 0.4018 is vulnerable to HTTP request smuggling, which allows attackers to intercept and manipulate traffic flowing through reverse proxies, directly exposing user data and application integrity. Organizations running Starman in production environments, particularly in containerized or cloud architectures, face immediate risk to session hijacking, data theft, and request manipulation unless upgraded.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
Same weakness CWE-444 – HTTP Request/Response Smuggling
View allSame technique Information Disclosure
View allVendor StatusVendor
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| bullseye | vulnerable | 0.4015-1 | - |
| bookworm | vulnerable | 0.4016-1 | - |
| forky, sid, trixie | vulnerable | 0.4017-1 | - |
| (unstable) | fixed | (unfixed) | - |
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB