Netty
CVE-2025-67735
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted URI with embedded CRLF
-
DeliveryApplication passes URI to HttpRequestEncoder
-
ExploitEncoder emits unsanitized smuggled request bytes
-
ExecutionBack-end parses injected second request
-
ImpactRequest smuggling, cache poisoning or control bypass
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
|
| Exploitation Conditions | Requires an application that uses Netty's HttpRequestEncoder (typically via HttpClientCodec) to construct outbound HTTP requests AND passes an attacker-influenced or otherwise unsanitized value into the request URI; Netty's default HTTP header validator blocks CRLF in headers but does NOT sanitize the URI, which the encoder writes verbatim. Limiting factors: this is a client-side request encoder, so smuggling targets the upstream/back-end server the Netty client connects to, not the Netty process itself; exploitation is not possible if the application sanitizes/validates URIs or does not route untrusted input into the URI. Affected: netty-codec-http >= 4.2.0.Alpha1 to < 4.2.8.Final and all versions < 4.1.129.Final. |
| Impact | This is a genuine but conditional, medium-severity issue rather than a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N = 6.5) signals a network-reachable, low-complexity flaw needing no privileges or user interaction, with low confidentiality and integrity impact and no availability impact - consistent with request smuggling (CWE-93) rather than code execution. A working PoC exists in the GHSA advisory, so publicly available exploit code exists; however, this is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of active, widespread exploitation. The most important nuance the raw CVSS hides: this is a library-level defect in the client-side HttpRequestEncoder, so real-world exploitability depends on whether the embedding application actually routes attacker-controlled data into the request URI without sanitization - the PR:N/AC:L rating assumes that untrusted input reaches the URI, which is an application-specific precondition not captured by the vector. Treat as a prioritized patch-soon item (broadly deployed library, public PoC) but not a drop-everything incident, absent evidence the specific application exposes an unsanitized URI path. |
| Exploit ScenarioDerived | An application built on Netty uses HttpClientCodec/HttpRequestEncoder and forwards user-supplied input into the outbound HTTP request URI. An attacker embeds CRLF sequences in that input, causing the encoder to emit a smuggled second request to the upstream/back-end server, enabling HTTP request smuggling such as cache poisoning or access-control bypass. A functional proof-of-concept reproducer is published in the GHSA advisory (AV:N/AC:L), lowering the bar for exploitation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
CRLF injection in Netty's io.netty.handler.codec.http.HttpRequestEncoder (netty-codec-http) allows an attacker-influenced request URI to be written verbatim into the outbound HTTP request line, enabling HTTP request smuggling against upstream/back-end servers. The flaw affects netty-codec-http versions prior to 4.1.129.Final and the 4.2.x line from 4.2.0.Alpha1 up to (but not including) 4.2.8.Final, and is unauthenticated per the CVSS vector (AV:N/PR:N/UI:N) with low confidentiality and integrity impact (CVSS 6.5). Publicly available exploit code exists, including a reproducer in the GitHub Security Advisory, and exploitation is conditional: it requires an application that uses HttpRequestEncoder (typically via HttpClientCodec) and passes unsanitized or attacker-controlled data into the request URI. There is no confirmed active exploitation (not in CISA KEV); Netty's default HTTP header validator blocks CRLF in headers but does not sanitize the URI.
RemediationAI
Vendor-released patch: upgrade netty-codec-http to 4.1.129.Final (for the 4.1.x line) or 4.2.8.Final (for the 4.2.x line); the upstream fix is commit 77e81f1e5944d98b3acf887d3aa443b252752e94 and full details are in GHSA-84h7-rjj3-6jx4. Because these are transitive dependencies in most deployments, verify the resolved netty-codec-http version in your dependency tree (e.g., mvn dependency:tree / Gradle dependencyInsight) and pin or force-upgrade it, since Netty is frequently pulled in indirectly by clients and frameworks. If immediate upgrade is not possible, the effective compensating control is input hygiene at the call site: never pass raw user- or upstream-derived strings into the request URI - reject or strictly validate any URI containing CR ( ), LF ( ), NUL, or other control characters, and percent-encode/re-parse untrusted components through a URI builder before constructing the request; the trade-off is that this depends on every caller being fixed, and overly aggressive rejection can break legitimate URIs containing encoded data. Additionally, harden the upstream server or reverse proxy to reject malformed request lines and conflicting framing (e.g., choose a single Content-Length/Transfer-Encoding interpretation, reject messages with both, and normalize the request target), which reduces smuggling viability but does not fix the client-side injection. Netty's default header validator does not help here, so do not rely on it as a mitigation for the URI path.
Affected Packages
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 an asynchronous, event-driven Java network application framework widely used as the HTTP client/server transport beneath other frameworks. HttpRequestEncoder writes an outbound request line by UTF-8 encoding the URI and emitting it directly after the method and space (buf.writeByte(SP).writeCharSequence(uriCharSequence, CharsetUtil.UTF_8)) with no CRLF or control-character neutralization - the root cause class is CWE-93 (Improper Neutralization of CRLF Sequences), a classic injection variant. This asymmetry matters: Netty's default HTTP header validation rejects CR/LF in header names and values, so headers are already guarded, but the request-target/URI path is not, letting an embedded sequence such as "/s1 HTTP/1.1\r\n\r\nPOST /s2 HTTP/1.1\r\ncontent-length: 11..." terminate the original request early and inject a second, fully attacker-shaped request. Because HttpRequestEncoder is the client-side encoder, the smuggling victim is the upstream server the Netty-based client connects to (or an intermediary that parses the resulting stream), not the Netty process itself; the technique depends on the target/intermediary pair parsing boundaries differently (e.g., Content-Length vs. request-target handling). The affected artifacts are maven/io.netty:netty-codec-http; CPE coverage is cpe:2.3:a:netty:netty.
Know when Netty 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:L/I:L/A:N
Remote attacker-supplied input reaches the URI with no auth or interaction (AV:N/AC:L/PR:N/UI:N); request smuggling yields low confidentiality/integrity impact and no availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Netty is an asynchronous, event-driven network application framework. In versions prior to 4.1.129.Final and 4.2.8.Final, the io.netty.handler.codec.http.HttpRequestEncoder has a CRLF injection with the request URI when constructing a request. This leads to request smuggling when HttpRequestEncoder is used without proper sanitization of the URI. Any application / framework using HttpRequestEncoder can be subject to be abused to perform request smuggling using CRLF injection. Versions 4.1.129.Final and 4.2.8.Final fix the issue.
Blast Radius
ecosystem impact- 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
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Affected Products (CPE)CVE.org
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Netty before 4.1.42.Final mishandles whitespace before the colon in HTTP headers (such as a "Transfer-Encoding : chunked
Certificate revocation-check bypass in the Netty network framework's OCSP client (io.netty:netty-handler-ssl-ocsp) affec
netty-incubator-codec-ohttp is the OHTTP implementation for netty. Rated critical severity (CVSS 9.1), this vulnerabilit
The netty incubator codec.bhttp is a java language binary http parser. Rated high severity (CVSS 8.1), this vulnerabilit
Netty, an asynchronous, event-driven network application framework, has a vulnerability starting in version 4.1.91.Final
Memory exhaustion in Netty's SctpMessageCompletionHandler (netty-transport-sctp) allows unauthenticated remote peers to
Compression-amplification denial of service in the Netty network framework (versions prior to 4.1.136.Final and 4.2.16.F
Memory-amplification denial of service in the Netty network framework (SPDY/3.1 codec) prior to 4.1.136.Final and 4.2.16
Memory-exhaustion denial of service in Netty's HTTP/3 codec (Http3FrameCodec) affects all releases prior to 4.2.16.Final
Netty's HTTP CORS handler silently rewrites the Vary response header to Vary: Origin in releases before 4.1.137.Final an
Denial of service in the Netty HTTP/3 codec (io.netty:netty-codec-http3) prior to version 4.2.15.Final allows remote una
NVD
CVE.org
EPSS
GitHub
Exploit-DB