Skip to main content

Netty HTTP Codec CVE-2026-42580

MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-05-07 https://github.com/netty/netty GHSA-m4cv-j2px-7723
6.5
CVSS 3.1 · Vendor: https://github.com/netty/netty
View

Attack ChainAIDerived

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

  1. Recon
    Attacker crafts malicious chunk size
  2. Delivery
    Sends POST with overflowing hex chunk size
  3. Exploit
    Netty parser overflows int silently
  4. Install
    Parser accepts misaligned chunk boundary
  5. C2
    Attacker-supplied request injected into stream
  6. Execute
    Server processes injected request as legitimate
  7. Impact
    Request smuggling succeeds

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 attacker must send HTTP requests with Transfer-Encoding: chunked headers to a service using Netty's HttpObjectDecoder. No authentication is required, and the attack succeeds against default Netty configurations. The chunk size header must be crafted as a hexadecimal string that, when parsed with 32-bit integer overflow, produces a valid small positive integer; the example '100000004' overflows to 4. The attack does not require specific Netty versions beyond the vulnerable ranges (4.1.0-4.1.132.Final and 4.2.0-4.2.12.Final) or special server configurations. The only limiting factor is network access to the affected Netty service - if the service does not accept HTTP requests (e.g., is not exposed to untrusted networks), exploitation is not possible. Custom application-level validation of chunk sizes before reaching the Netty decoder would also prevent exploitation, but such validation is not typical unless explicitly implemented.

Impact

CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L confirms network-accessible unauthenticated exploitation with low complexity and no user interaction required. The scope is unchanged (single component affected), with low impact on integrity (request smuggling enables unauthorized request injection) and low availability impact. The attack requires no special configuration - any deployment using Netty's HttpObjectDecoder to parse incoming HTTP requests is immediately vulnerable. The CVSS score of 6.5 reflects a medium-risk vulnerability with practical exploit impact: request smuggling is a well-understood attack vector enabling cache poisoning, session hijacking, and unauthorized state modifications. The presence of a functional proof-of-concept in the GitHub advisory (demonstrating successful parsing of injected requests) confirms exploitability. KEV status is not explicitly provided in input data, but public disclosure via GitHub advisory and confirmed POC code indicate active awareness in the threat landscape. The low complexity (AC:L) and lack of privilege requirements (PR:N) mean this vulnerability is accessible to any attacker with network access to an affected service, with no special tools beyond HTTP crafting required. No EPSS score is provided, but the attack surface (all HTTP request parsers using Netty) and simplicity of exploitation suggest high real-world risk despite the 6.5 CVSS score.

Exploit ScenarioDerived

An attacker sends a single HTTP request containing a malicious chunk size header (e.g., '100000004\r\n') followed by a short legitimate body ('test\r\n') and then appends an injected request (e.g., 'GET /admin HTTP/1.1\r\n'). The Netty parser overflows the chunk size to a small valid integer during parsing, causing it to complete the first request early and treat the injected request as a new, separate request. If the attacker targets a Netty-based API gateway or reverse proxy, the gateway may forward the first request to a backend server while queuing the injected request for the next client, leading to request confusion. Alternatively, if a shared cache (HTTP cache, CDN) sits between the attacker and target, the cache may store the response to the injected request under the legitimate request's URI, poisoning subsequent client requests.

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 07, 2026

HTTP request smuggling in Netty's chunk size parser allows remote unauthenticated attackers to inject arbitrary HTTP requests by exploiting integer overflow in the hexadecimal chunk size parsing logic. The HttpObjectDecoder.getChunkSize method accumulates the chunk size without proper overflow validation, enabling an attacker to craft a malicious chunk size header that wraps around to a valid size, causing Netty to misinterpret the request boundary and parse injected requests as separate legitimate requests. Publicly available proof-of-concept demonstrates successful parsing of an injected GET request within a chunked POST body, with CVSS score 6.5 (network-accessible, low complexity, no authentication required).

RemediationAI

Immediately upgrade Netty to patched versions: io.netty:netty-codec-http 4.1.133.Final (for 4.1.x branch) or 4.2.13.Final (for 4.2.x branch). For applications using Netty transitively (e.g., Spring Boot), update the parent or Netty dependency directly via Maven or Gradle to the patched version. Verify the upgrade by checking dependency trees (mvn dependency:tree) and confirming no transitive dependencies downgrade Netty. Testing should include regression tests with both normal and malicious chunk size payloads (e.g., '100000004\r\n') to confirm the parser rejects invalid overflow cases. If immediate patching is not possible, implement network-level mitigations: deploy a reverse proxy (nginx, HAProxy) in front of the Netty application configured to normalize and validate chunk sizes before forwarding, explicitly blocking hex values that would overflow (values > 0x7FFFFFFF in 32-bit int); this adds latency and complexity but prevents request smuggling. Alternatively, disable chunked transfer encoding at the application level if not required (configure HttpObjectDecoder.maxChunkSize and reject Transfer-Encoding: chunked headers via middleware), though this may break legitimate clients using chunked requests. Monitor upstream proxies and load balancers for duplicate or suspiciously timed requests, which indicate smuggling attempts.

Affected Packages

maven io.netty:netty-codec-http fix: 4.1.133.Final, 4.2.13.Final

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in maven

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

Technical ContextAI · show details

Netty is a Java-based asynchronous event-driven network application framework. The vulnerability resides in io.netty.handler.codec.http.HttpObjectDecoder.getChunkSize, which parses HTTP/1.1 chunked transfer encoding chunk size headers (specified in RFC 7230, section 4.1). The parser accumulates a hexadecimal size via iterative multiplication and addition: result = (result * 16) + digit. This operation is performed using Java int (32-bit), which has a maximum value of 2,147,483,647. The code checks only whether the final result is negative (detecting simple signed overflow), but does not validate the magnitude of intermediate or final computations. A carefully constructed chunk size such as '0x100000004' overflows to a small positive integer when interpreted as a 32-bit int, causing the parser to accept a misaligned chunk boundary. This violates RFC 7230 validation requirements and enables request smuggling (CWE-444: Inconsistent Interpretation of HTTP Requests), where the attacker's HTTP client and the target server interpret request boundaries differently.

Know when Java 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 (https://github.com/netty/netty) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
SUSE MEDIUM
Red Hat 6.5 MEDIUM

Primary rating from Vendor (https://github.com/netty/netty).

CVSS VectorVendor: https://github.com/netty/netty

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

DescriptionCVE.org

Summary

Netty's chunk size parser silently overflows int, enabling request smuggling attacks.

Details

io.netty.handler.codec.http.HttpObjectDecoder#getChunkSize silently overflows int.

The size is accumulated as follows:

result *= 16; result += digit;

The result is checked only for negative values. However, with a carefully crafted chunk size, the result can be a valid size.

PoC

The test below shows Netty successfully parsing the second request, demonstrating how an attacker can smuggle a second request inside a chunked body.

java
@Test
public void test() {
    String requestStr = "POST / HTTP/1.1\r\n" +
            "Host: localhost\r\n" +
            "Transfer-Encoding: chunked\r\n\r\n" +
            "100000004\r\n" +
            "test\r\n" +
            "0\r\n" +
            "\r\n" +
            "GET /smuggled HTTP/1.1\r\n" +
            "Host: localhost\r\n" +
            "Content-Length: 0\r\n" +
            "\r\n";

    EmbeddedChannel channel = new EmbeddedChannel(new HttpRequestDecoder());
    assertTrue(channel.writeInbound(Unpooled.copiedBuffer(requestStr, CharsetUtil.US_ASCII)));

    // Request 1
    HttpRequest request = channel.readInbound();
    assertTrue(request.decoderResult().isSuccess());
    HttpContent content = channel.readInbound();
    assertTrue(content.decoderResult().isSuccess());
    assertEquals("test", content.content().toString(CharsetUtil.US_ASCII));
    content.release();
    LastHttpContent last = channel.readInbound();
    assertTrue(last.decoderResult().isSuccess());
    last.release();

    // Request 2
    request = channel.readInbound();
    assertTrue(request.decoderResult().isSuccess());
    last = channel.readInbound();
    assertTrue(last.decoderResult().isSuccess());
    last.release();
}

Impact

HTTP Request Smuggling: Attacker injects arbitrary HTTP requests

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 11 maven packages depend on io.netty:netty-codec-http (11 direct, 0 indirect)

Ecosystem-wide dependent count for version 4.2.0.Alpha1.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS GHSA Vendor 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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)CVE.org

pkg:maven/io.netty:netty-codec-http
pkg:maven/io.netty:netty-codec-http

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS Affected

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