Skip to main content

Netty CVE-2026-100666

| EUVDEUVD-2026-87760 MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-09-26 VulnCheck GHSA-jq5g-c66v-g3r2
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach Netty HTTP/1.1 endpoint (unauthenticated)
  2. Delivery
    Pipeline GET with Expect:100-continue then HEAD
  3. Exploit
    100 Continue consumes queued GET method
  4. Execution
    Responses mispaired, HEAD body read as GET body
  5. Impact
    Response splitting and unsafe connection reuse

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

Requires a server built on Netty's HttpServerCodec (io.netty:netty-codec-http) in the affected ranges 4.2.0.Final-4.2.16.Final or ≤4.1.136.Final, handling HTTP/1.1 with request pipelining and Expect/100-continue support (the default codec behavior). The concrete trigger is a single pipelined stream: an HTTP/1.1 GET carrying 'Expect: 100-continue' immediately followed by a HEAD request on the same keep-alive connection. Exploitation is unauthenticated and needs no user interaction (PR:N/UI:N). Limiting factors: real-world impact is amplified when the vulnerable Netty server sits behind a shared/pooled connection (front-end proxy, load balancer, or CDN) so that a desynchronized connection is reused across clients; deployments that disable HTTP/1.1 pipelining or terminate/normalize responses at an upstream that does not reuse the connection reduce the practical risk.

Impact

This is a genuine but moderate-priority integrity flaw rather than a high-urgency crisis. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VC:L/VI:L/VA:L, score 6.9) indicates fully remote, unauthenticated, low-complexity exploitation against affected default configurations - no user interaction, no privileges, no special attack requirement. That accessibility is offset by low technical impact per metric (each of C/I/A rated Low, no scope change), consistent with a response-desynchronization/smuggling issue (CWE-444) whose consequence is response splitting and unsafe connection reuse rather than direct code execution or data theft. No EPSS score, no CISA KEV listing, and no public POC were provided, so exploitation status is 'no public exploit identified at time of analysis' - this is not confirmed exploited and not known automatable in the wild. Signals are broadly consistent (network vector matches an HTTP-parser bug), with one nuance: the input Tags label this 'Information Disclosure' while CWE-444 and the description point to request/response smuggling (an integrity problem), where any confidentiality impact is a secondary effect of one client receiving another's response. Net: real, patchable, worth remediating in JVM HTTP stacks, but low real-world urgency absent exploitation evidence.

Exploit ScenarioDerived

An unauthenticated attacker (or a malicious client behind a shared proxy/load balancer that reuses the connection) sends a single pipelined HTTP/1.1 stream to a Netty-backed server: a GET carrying 'Expect: 100-continue' immediately followed by a HEAD request. The server's 100 Continue response wrongly consumes the queued GET method, so the GET's 200 OK is paired with HEAD (its body dropped) and the HEAD response is written with a body, desynchronizing the connection so the HEAD response body is interpreted as the GET body - enabling response splitting and poisoned connection reuse. No public exploit code was identified in the provided data.

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

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

Alert me

AnalysisAIv1 – Sep 26, 2026

Unauthenticated remote attackers can desynchronize HTTP/1.1 response parsing in Netty's HttpServerCodec (io.netty:netty-codec-http) versions 4.2.0.Final through 4.2.16.Final and all versions up to and including 4.1.136.Final by pipelining a GET carrying 'Expect: 100-continue' immediately followed by a HEAD request on the same keep-alive connection. Because the codec pairs each outbound response - including the 100 Continue informational response - with a queued inbound method via pollMethod(), the GET's 200 OK is matched to HEAD and its entity body is dropped, while the following 200 OK (intended for HEAD) is emitted with a body; this misattributes content across responses, enabling response splitting and unsafe reuse of the connection. It is a genuine but moderate-priority integrity flaw (vendor CVSS 4.0 score 6.9; independent assessment CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N), with no public exploit identified at time of analysis and vendor-released patches available in 4.2.17.Final and 4.1.137.Final.

RemediationAI

Vendor-released patch: upgrade the io.netty:netty-codec-http dependency to 4.2.17.Final or 4.1.137.Final, which correct the pollMethod() accounting so that 1xx informational responses no longer consume a queued request method; rebuild and redeploy any application that bundles Netty so the updated artifact is actually packaged. Per the upstream advisory at https://github.com/netty/netty/security/advisories/GHSA-2g6j-r8q9-5hr8, no other configuration change is required once patched; the VulnCheck advisory at https://www.vulncheck.com/advisories/netty-4.2.0-through-4.2.17-response-desynchronization-via-httpservercodec provides additional context. If immediate upgrading is not possible, reduce exposure by ensuring front-end proxies, load balancers, and CDNs do not pool or reuse upstream connections across distinct clients when talking to the vulnerable Netty service - for example by disabling upstream keep-alive or connection reuse - since isolating each client's upstream connection prevents a desynchronized stream from being observed by another user; the trade-off is higher connection setup overhead and lower throughput. Alternatively, disable HTTP/1.1 request pipelining and/or strip or reject 'Expect: 100-continue' handling at the edge so the 1xx/HEAD trigger sequence cannot reach the codec, at the cost of losing 100-continue latency optimization and potentially breaking clients that depend on it. Deployments that terminate HTTP/1.1 entirely and only pass HTTP/2 or otherwise normalized single-request-per-connection traffic are not exposed to the pipelined trigger, though upgrading remains the definitive fix.

Affected VersionsENISA

netty 0 <4.1.137.Final
netty 4.2.0.Final <4.2.17.Final

Affected Packages

euvd netty fix: 4.1.137.Final, 4.2.17.Final

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

Netty is a widely used asynchronous, event-driven network framework, and netty-codec-http (CPE cpe:2.3:a:netty:netty) implements its HTTP/1.x encoder and decoder. HttpServerCodec tracks the HTTP method of each inbound request in a queue so that the corresponding outbound response can be encoded correctly - most critically deciding whether a response may carry a body (GET allows a body; HEAD does not). In the affected builds, the codec calls pollMethod() once per outbound response written, and that accounting erroneously includes 1xx informational responses such as '100 Continue'. When a client pipelines an HTTP/1.1 GET with 'Expect: 100-continue' followed immediately by a HEAD request, the interim 100 Continue consumes the queued GET method; the subsequent final response for the GET is therefore encoded as though it were the response to HEAD (body suppressed), and the response to the HEAD request is encoded as though it were the GET response (body emitted). This is a classic inconsistent-interpretation-of-HTTP defect (CWE-444, request/response smuggling class) in which the two ends of the connection disagree about message framing and body ownership. The practical severity depends on deployment topology: the desynchronization is dangerous primarily when the vulnerable Netty server sits behind a front-end proxy, load balancer, or CDN that pools and reuses upstream keep-alive connections across different clients, because a poisoned connection can then deliver one client's response body to another client or be used for cache poisoning. Netty deployments that disable HTTP/1.1 pipelining or that terminate and normalize responses upstream without connection reuse largely avoid the cross-client consequence.

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 (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Remote, unauthenticated, low-complexity HTTP pipelining (AV:N/AC:L/PR:N/UI:N); smuggling causes response mispairing (I:L) with incidental cross-response exposure (C:L) 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
SUSE 7.3 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Red Hat 7.3 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 26, 2026 - 14:02 EUVD
CVE Published
Sep 26, 2026 - 13:23 cve.org
MEDIUM 6.9

DescriptionCVE.org

Netty's HttpServerCodec (io.netty:netty-codec-http) in versions 4.2.0.Final through 4.2.16.Final and in versions up to and including 4.1.136.Final pairs each outbound response with an inbound request by calling pollMethod() once per response, including for 1xx informational responses. If a client pipelines an HTTP/1.1 GET carrying an Expect: 100-continue header followed by a HEAD request, the 100 Continue response consumes the queued GET method, so the subsequent 200 OK for the GET is paired with HEAD and its body is dropped, while the following 200 OK for the HEAD request is written with a body. This desynchronizes HTTP parsing on the connection: the GET entity is never delivered and the HEAD response body is interpreted as the GET body, resulting in response splitting and unsafe connection reuse. Fixed in 4.2.17.Final and 4.1.137.Final.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
High
Netty HTTP codec is embedded in countless JVM servers, frameworks, and proxies
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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.2%
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.3 Affected
openSUSE Leap 15.4 Affected

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