Miggo Logo

CVE-2025-58056: Netty vulnerable to request smuggling due to incorrect parsing of chunk extensions

N/A

CVSS Score

Basic Information

EPSS Score
0.15289%
Published
9/4/2025
Updated
9/4/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
io.netty:netty-codec-httpmaven< 4.1.125.Final4.1.125.Final
io.netty:netty-codec-httpmaven>= 4.2.0.Alpha1, < 4.2.5.Final4.2.5.Final

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is a request smuggling issue (CWE-444) in Netty's HTTP codec. It stems from the lenient parsing of chunked transfer encoding headers. According to RFC 9112, chunk headers must be terminated by a CRLF sequence. However, Netty's HttpObjectDecoder accepted a single Line Feed (LF) as a valid terminator.

An attacker could craft a request with a lone LF in the chunk extension. A front-end proxy that correctly follows the RFC might see this as part of the chunk data, while Netty would interpret it as the end of the chunk header, leading to a desynchronization of the request stream between the proxy and the backend Netty application. This allows an attacker to smuggle a second, malicious request.

The analysis of the patch edb55fd8e0a3bcbd85881e423464f585183d1284 reveals the exact location of the flaw. The HttpObjectDecoder.decode method, which manages the HTTP parsing state machine, was invoking a lenient line parser in its READ_CHUNK_SIZE state. The fix involves introducing a strict line parsing mode, which is enabled by default. This is implemented in the HttpObjectDecoder$HeaderParser.parse method, where a check for a preceding Carriage Return (CR) before a Line Feed (LF) is added.

The primary vulnerable function is io.netty.handler.codec.http.HttpObjectDecoder.decode, as it contains the state machine logic that incorrectly handles the READ_CHUNK_SIZE state. The io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.parse method is also identified as it contains the core faulty parsing logic that was fixed. Both would likely appear in a runtime profile during exploitation.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

## Summ*ry * *l*w in n*tty's p*rsin* o* **unk *xt*nsions in *TTP/*.* m*ss***s wit* **unk** *n*o*in* **n l*** to r*qu*st smu**lin* issu*s wit* som* r*v*rs* proxi*s. ## **t*ils W**n *n*ount*rin* * n*wlin* ***r**t*r (L*) w*il* p*rsin* * **unk *xt*nsion

Reasoning

T** vuln*r**ility is * r*qu*st smu**lin* issu* (*W*-***) in N*tty's *TTP *o***. It st*ms *rom t** l*ni*nt p*rsin* o* **unk** tr*ns**r *n*o*in* *****rs. ***or*in* to R** ****, **unk *****rs must ** t*rmin*t** *y * *RL* s*qu*n**. *ow*v*r, N*tty's `*ttp