Starlet HTTP Request Smuggling Vulnerability via Improper Header Precedence

Vulnerability

A vulnerability in Starlet versions prior to 0.31 for Perl allows HTTP request smuggling through improper header precedence. Starlet incorrectly prioritizes 'Content-Length' over 'Transfer-Encoding: chunked' when both headers are present, contrary to RFC 7230, which states that 'Transfer-Encoding' must take precedence. This flaw could enable an attacker to smuggle malicious HTTP requests through a front-end reverse proxy.

Impact

Exploitation of this vulnerability could lead to HTTP request smuggling, allowing an attacker to send malicious requests that could be misinterpreted by the server or a reverse proxy, potentially causing unintended behavior or security issues.

Reproduction

The vulnerability can be reproduced by sending an HTTP request that includes both 'Content-Length' and 'Transfer-Encoding: chunked' headers. The server will incorrectly process the request, prioritizing the 'Content-Length' header and allowing for request smuggling. This can be automated with a test script that sends such a request to a Starlet server instance.

Remediation

Users can update to Starlet version 0.31 or later, where this vulnerability has been fixed.

Added: May 3, 2026, 1:18 AM
Updated: May 3, 2026, 1:18 AM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
0.6
exploitability
6.0
remediation
0.0
relevance
7.3
threat
1.6
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.