Skip to main content

Netty CVE-2025-67735

MEDIUM
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2025-12-16 security-advisories@github.com
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted URI with embedded CRLF
  2. Delivery
    Application passes URI to HttpRequestEncoder
  3. Exploit
    Encoder emits unsanitized smuggled request bytes
  4. Execution
    Back-end parses injected second request
  5. Impact
    Request 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.

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

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

Alert me

AnalysisAIv1 – 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

maven io.netty:netty-codec-http fix: 4.1.129.Final, 4.2.8.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 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

Vendor (github) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 6.5 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

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
† 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.3%
Top 77% exploitable
Prevalence
Ubiquitous
core async networking library embedded across countless JVM apps and frameworks
Exploit
POC
Public exploit code exists
Data Quality
3 sources
Confidence: Low

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 Yes
EPSS 0.3%
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
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Code Injection CRITICAL

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

cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:*
cpe:2.3:a:netty:netty:*:*:*:*:*:*:*:*

More in Netty

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2019-16869 HIGH POC
7.5 Sep 26

Netty before 4.1.42.Final mishandles whitespace before the colon in HTTP headers (such as a "Transfer-Encoding : chunked

CVE-2026-56820 CRITICAL POC
9.1 Jul 21

Certificate revocation-check bypass in the Netty network framework's OCSP client (io.netty:netty-handler-ssl-ocsp) affec

CVE-2024-36121 CRITICAL POC
9.1 Jun 04

netty-incubator-codec-ohttp is the OHTTP implementation for netty. Rated critical severity (CVSS 9.1), this vulnerabilit

CVE-2024-40642 HIGH POC
8.1 Jul 18

The netty incubator codec.bhttp is a java language binary http parser. Rated high severity (CVSS 8.1), this vulnerabilit

CVE-2025-24970 HIGH POC
7.5 Feb 10

Netty, an asynchronous, event-driven network application framework, has a vulnerability starting in version 4.1.91.Final

CVE-2026-59902 HIGH POC
7.5 Aug 17

Memory exhaustion in Netty's SctpMessageCompletionHandler (netty-transport-sctp) allows unauthenticated remote peers to

CVE-2026-55833 HIGH POC
7.5 Jul 20

Compression-amplification denial of service in the Netty network framework (versions prior to 4.1.136.Final and 4.2.16.F

CVE-2026-55831 HIGH POC
7.5 Jul 20

Memory-amplification denial of service in the Netty network framework (SPDY/3.1 codec) prior to 4.1.136.Final and 4.2.16

CVE-2026-56816 HIGH POC
7.5 Jul 21

Memory-exhaustion denial of service in Netty's HTTP/3 codec (Http3FrameCodec) affects all releases prior to 4.2.16.Final

CVE-2026-59903 HIGH POC
7.5 Aug 17

Netty's HTTP CORS handler silently rewrites the Vary response header to Vary: Origin in releases before 4.1.137.Final an

CVE-2026-48748 HIGH POC
7.5 Jun 12

Denial of service in the Netty HTTP/3 codec (io.netty:netty-codec-http3) prior to version 4.2.15.Final allows remote una

Vendor StatusVendor

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