CVE-2026-33870
Java vulnerability analysis and mitigation

Overview

CVE-2026-33870 is an HTTP Request Smuggling vulnerability in Netty, an asynchronous event-driven network application framework, caused by incorrect parsing of quoted strings in HTTP/1.1 chunked transfer encoding extension values. It affects Netty versions prior to 4.1.132.Final and versions 4.2.0.Alpha1 through 4.2.10.Final (exclusive). The vulnerability was published on March 24, 2026, and assigned a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory, Netty Advisory). Downstream products from IBM, Oracle, Red Hat, Atlassian, Splunk, HPE, and others are also affected due to their bundled use of the vulnerable Netty library (Oracle CPU Apr 2026, Red Hat Bugzilla).

Technical details

The root cause (CWE-444: Inconsistent Interpretation of HTTP Requests) lies in Netty's HTTP/1.1 chunked transfer encoding parser, which incorrectly terminates chunk header parsing at \r\n sequences encountered inside quoted-string extension values, rather than rejecting such requests as malformed. Per RFC 9110 Sections 5.6.4 and 7.1.1, CR (%x0D) and LF (%x0A) bytes are not permitted inside chunk extensions — quoted or unquoted — and a compliant parser should respond with 400 Bad Request. Netty instead treats the premature termination point as the end of the chunk header, causing subsequent bytes (including attacker-controlled content) to be interpreted as a new HTTP request by the backend, creating a parsing differential exploitable for request smuggling. This vulnerability is a new variant discovered during research into the "Funky Chunks" HTTP request smuggling techniques, which had not previously tested quoted-string handling within chunk extension values (GitHub Advisory, Netty Advisory).

Impact

Successful exploitation allows an unauthenticated remote attacker to inject arbitrary HTTP requests into a shared connection, enabling request smuggling attacks with no confidentiality impact but high integrity impact. Concrete consequences include cache poisoning (smuggled responses may corrupt shared caches), access control bypass (smuggled requests can circumvent frontend security controls such as WAFs or reverse proxies), and session hijacking (smuggled requests may intercept responses intended for other users). The vulnerability affects any deployment where Netty acts as an HTTP intermediary or backend server, and the broad adoption of Netty across enterprise middleware (IBM, Oracle, Red Hat, Atlassian, Splunk, HPE products) significantly expands the attack surface (GitHub Advisory, Oracle CPU Apr 2026).

Exploitation steps

  1. Reconnaissance: Identify targets running Netty versions prior to 4.1.132.Final or 4.2.10.Final, either directly or as a dependency in products such as IBM Maximo, Red Hat AMQ Broker, Keycloak, or Oracle Database Clusterware. Use dependency scanners (e.g., Trivy, Grype) or banner grabbing to confirm the Netty version in use.
  2. Craft the smuggling payload: Construct an HTTP/1.1 POST request using chunked transfer encoding with a chunk extension containing an embedded \r\n inside a quoted-string value, e.g.:
POST / HTTP/1.1\r\n
Host: localhost\r\n
Transfer-Encoding: chunked\r\n
\r\n
1;a="\r\n
X\r\n
0\r\n
\r\n
GET /smuggled HTTP/1.1\r\n
Host: localhost\r\n
Content-Length: 11\r\n
\r\n
"\r\n
Y\r\n
0\r\n
\r\n
  1. Send the payload: Transmit the crafted payload over a single TCP connection to the target Netty server (e.g., port 8080) using a raw socket or the provided PoC Python script.
  2. Confirm smuggling: Count the number of HTTP responses received on the single connection — two responses confirm successful request smuggling, with the second response corresponding to the injected GET /smuggled request.
  3. Achieve objective: Leverage the smuggling primitive to poison shared caches, bypass frontend access controls, or capture responses intended for other users by timing the smuggled request to coincide with a victim's session (Netty Advisory, GitHub Advisory).

Indicators of compromise

  • Network: HTTP/1.1 POST requests with Transfer-Encoding: chunked headers where the chunk extension value contains a quoted-string with embedded CR/LF bytes (e.g., 1;a="\r\n); unexpected additional HTTP responses on a single TCP connection from the Netty server.
  • Logs: Web server or proxy access logs showing two distinct HTTP requests processed from a single connection where only one was sent by the legitimate client; unexpected requests to internal or restricted endpoints (e.g., /smuggled, /admin) originating from the Netty server's own connection pool.
  • Application Behavior: Cache entries containing unexpected or attacker-controlled content; users receiving HTTP responses intended for other sessions; access control rules being bypassed for requests that should have been blocked by a frontend proxy or WAF.
  • Anomalies: Requests to backend services with headers or paths inconsistent with the frontend's routing rules; unusual Content-Length mismatches in proxied requests logged by intermediary components.

Mitigation and workarounds

The primary remediation is to upgrade Netty to version 4.1.132.Final or 4.2.10.Final (or later, such as 4.2.12.Final), which fix the chunk extension parsing to reject requests containing CR/LF bytes within chunk extensions (GitHub Advisory, Netty Advisory). For downstream products, apply vendor-specific patches: Red Hat has issued multiple errata (RHSA-2026:7109, RHSA-2026:8159, RHSA-2026:8509, RHSA-2026:13571, RHSA-2026:14276, RHSA-2026:17668, RHSA-2026:18059, RHSA-2026:22619, and others); Oracle addressed it in the April 2026 CPU; IBM has released fixes for Business Automation Manager Open Editions, API Connect, Maximo Application Suite, SPSS Analytic Server, Instana, QRadar EDR, and other products (Red Hat Bugzilla, Oracle CPU Apr 2026). As a temporary workaround, deploy a Web Application Firewall (WAF) configured to detect and block HTTP request smuggling patterns, and ensure frontend proxies are configured to normalize or reject malformed chunked encoding before forwarding to Netty backends.

Community reactions

The Netty maintainers published the security advisory on March 24, 2026, crediting reporter xclow3n and acknowledging Ben Kallus for clarifying the RFC interpretation during discussion on the HAProxy mailing list (Netty Advisory). The vulnerability was noted as a new variant of the "Funky Chunks" HTTP request smuggling research published in 2025, extending that work to cover quoted-string handling in chunk extensions. Red Hat, IBM, Oracle, Atlassian, Splunk, HPE, and Keycloak all issued downstream advisories within weeks of the initial disclosure, reflecting the broad impact of Netty's widespread adoption in enterprise Java middleware. Community coverage appeared on security news aggregators and threat intelligence digests including Cyfirma's weekly intelligence report and Hawk-Eye's threat landscape digest.

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p279-2cqp-84jgCRITICAL9.6
  • Java logoJava
  • org.openidentityplatform.opendj:opendj-server-legacy
NoYesJul 24, 2026
GHSA-fp43-vj7g-pg92HIGH7.5
  • Java logoJava
  • org.omnifaces:omnifaces
NoYesJul 24, 2026
GHSA-7ppr-r889-mcf2HIGH7.5
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.12
NoYesJul 24, 2026
GHSA-mhvj-jhpq-885vHIGH7.4
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.13
NoYesJul 24, 2026
GHSA-46q4-43ph-c6frHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_2.12
NoYesJul 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management