Skip to main content

Starlet CVE-2026-40561

| EUVDEUVD-2026-26806 MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-05-03 CPANSec
5.3
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft HTTP request with both headers
  2. Delivery
    Send through front-end proxy
  3. Exploit
    Proxy and backend interpret differently
  4. Execution
    Smuggle second request
  5. Persist
    Backend processes injected payload
  6. Impact
    Attacker gains unlogged access

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

The vulnerability requires: (1) an HTTP request explicitly containing both Content-Length and Transfer-Encoding: chunked headers in the same request; (2) Starlet deployed behind a front-end reverse proxy or load balancer that implements RFC 7230 correctly and prioritizes Transfer-Encoding; (3) network path between the attacker and Starlet (can be direct or through proxy). Exploitation does not require authentication, user interaction, or Starlet-specific configuration-it occurs against default Starlet behavior. However, the attack is only effective in a multi-tier proxy architecture where the front-end and backend interpret headers inconsistently. Standalone Starlet deployments directly exposed to clients without an intervening proxy are not vulnerable to request smuggling in the classical sense, although they still violate RFC 7230 and reject such requests only after the patch.

Impact

While CVSS 5.3 with network vector and low attack complexity appears moderate, the EPSS score of 0.01% (percentile 0%) indicates extremely low exploitation probability in practice. The integrity impact (I:L) reflects request smuggling's potential to modify HTTP semantics, but the confidentiality and availability impacts are absent. The vulnerability requires a specific proxy chain topology (front-end proxy and Starlet backend with differing header precedence interpretations) and does not affect standalone Starlet deployments or proxies that correctly implement RFC 7230. No CISA KEV listing or public exploit code is reported, and the attack surface is further narrowed because it only manifests when both headers are explicitly sent-standard HTTP clients rarely construct such malformed requests. The low EPSS combined with absence of active exploitation data suggests this is a compliance/defense-in-depth issue rather than an urgent operational risk, unless the specific deployment pattern (Starlet behind a vulnerable proxy) is confirmed in an organization's infrastructure.

Exploit ScenarioDerived

An attacker sends an HTTP request with both Content-Length: 3 and Transfer-Encoding: chunked headers to a reverse proxy (e.g., nginx, which correctly prioritizes Transfer-Encoding) that forwards the request to an unpatched Starlet backend. The proxy interprets the request body as three bytes, while Starlet incorrectly interprets it as chunked-encoded data spanning multiple frames. This creates a desynchronization: the proxy forwards what it believes is a complete request, but Starlet parses additional data that the proxy intended for the next request, allowing an attacker to inject a hidden HTTP request that the backend processes while the proxy logs and forwards a different request. No public exploit code is documented at the time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 04, 2026

HTTP request smuggling in Starlet through version 0.31 allows remote unauthenticated attackers to bypass header validation by exploiting incorrect precedence of Content-Length over Transfer-Encoding headers. The vulnerability violates RFC 7230 section 3.3.3, which mandates that Transfer-Encoding must take precedence when both headers are present. An attacker positioned between a client and Starlet-based backend can craft malicious requests that are interpreted differently by a front-end reverse proxy and the Starlet server, enabling request smuggling attacks with integrity impact.

RemediationAI

Upgrade Starlet to a version released after the patch commit a7d5dfd1862aafa43e5eaca0fdb6acf4cc15b2d0 (exact patched version number not specified in provided data, consult CPAN or vendor release notes). The upstream fix adds validation to reject HTTP requests containing both Transfer-Encoding and Content-Length headers, returning a 400 Bad Request response as per RFC 7230 guidance. No workarounds are documented for unpatched versions, but deployment-level mitigation can include placing a RFC 7230-compliant reverse proxy (such as nginx or Apache with appropriate configuration) in front of Starlet to normalize or reject malformed requests before they reach the backend. If immediate patching is not feasible, restrict Starlet to trusted networks and avoid exposing it directly to the internet; however, this does not eliminate risk in multi-tier proxy architectures. Refer to https://github.com/kazuho/Starlet for release notes and https://vuldb.com/vuln/360875 for additional advisory details.

Affected VersionsENISA

Starlet 0 ≤0.31

Affected Packages

euvd starlet no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Starlet is a high-performance Perl PSGI application server. The vulnerability resides in the HTTP request parsing logic (lib/Starlet/Server.pm, handle_connection subroutine) where the server incorrectly prioritizes the Content-Length header when both Content-Length and Transfer-Encoding: chunked are present in the same HTTP request. RFC 7230 section 3.3.3 explicitly requires that Transfer-Encoding takes precedence, and the presence of both headers together signals a potential request smuggling or response splitting attack. The root cause is CWE-444 (Inconsistent Interpretation of HTTP Requests by HTTP Entities), a well-known class enabling cache poisoning, session fixation, and request smuggling attacks in proxy chains. The CPE affected is cpe:2.3:a:kazuho:starlet:*:*:*:*:*:*:*:* for all versions through 0.31.

Know when Starlet 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

Vendor (CPANSec) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Primary rating from Vendor (CPANSec) · only source for this CVE.

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

3
CVSS changed
May 04, 2026 - 14:22 NVD
5.3 (MEDIUM)
Patch released
May 03, 2026 - 01:15 nvd
Patch available
CVE Published
May 03, 2026 - 00:57 nvd
MEDIUM 5.3

DescriptionCVE.org

Starlet versions through 0.31 for Perl allows HTTP Request Smuggling via Improper Header Precedence.

Starlet 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.

Threat Intelligence Overview

EPSS Score
0.0%
Top 100% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy