CVE-2026-2332
High · 7.4CVSS
7.4
EPSS
1.3%
Published
Apr 14, 2026
CISA due date
—
Cloudanix analysis
A web server component can be tricked into hiding one request inside another, letting attackers slip past security checks and reach parts of an application they should not.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Tampering
- Component
- Web Framework
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The HTTP/1.1 chunked transfer encoding parser in Jetty mishandles quoted strings in chunk extensions by terminating on an embedded CRLF instead of treating it as a syntax error, allowing an attacker to inject a second HTTP request that is parsed as part of the first.
Why it matters to the business
Attackers can bypass front-end security controls such as WAFs or authentication gateways, reach internal application endpoints, and perform unauthorized actions against backend services that trust the proxy chain.
How an attack unfolds
An attacker crafts a chunked POST request whose chunk-extension quoted string contains an unterminated quote followed by CRLF and a complete second HTTP request; Jetty's parser accepts the CRLF inside the quotes, emits both requests downstream, and any subsequent proxy or origin server processes the smuggled request as a separate, attacker-controlled transaction.
How to fix it
Upgrade Eclipse Jetty to a version that correctly rejects CRLF characters inside quoted chunk extensions; until a patched release is available, enforce request normalization or chunked-encoding validation at any upstream reverse proxy or WAF, and consider disabling HTTP/1.1 chunked encoding where operationally feasible.
How to confirm the fix worked
After applying an update, replay the proof-of-concept request from the Funky Chunks publications and confirm that the server returns a 400 Bad Request instead of forwarding both requests; additionally run automated HTTP request-smuggling test suites against the patched instance.
Typical attack path
- Identify a Jetty-based origin or reverse-proxy that accepts HTTP/1.1 chunked requests
- Send a single HTTP/1.1 POST containing a chunked body with a malformed chunk-extension quoted string that embeds CRLF and a second request line plus headers
- The smuggled request is forwarded or processed independently, bypassing any per-request security checks performed on the outer request
- Attacker observes or acts on the response to the hidden request
How to detect it
Search web-access and proxy logs for chunked requests whose chunk-extension fields contain embedded CRLF sequences or unbalanced quotation marks; correlate any such entries with subsequent requests that appear without corresponding outer-request metadata.
What your security team should do
- Treat the issue as high priority for any internet-facing Jetty deployments even though EPSS remains low
- Inventory all Eclipse Jetty versions in use and subscribe to Jetty release announcements for the forthcoming fix
- Add WAF or proxy rules that reject chunk extensions containing unescaped CRLF or unbalanced quotes until patches are deployed
- Monitor downstream dependency counts and schedule upgrades for any frameworks that embed Jetty
The record
In Eclipse Jetty, the HTTP/1.1 parser is vulnerable to request smuggling when chunk extensions are used, similar to the "funky chunks" techniques outlined here: * https://w4ke.info/2025/06/18/funky-chunks.html * https://w4ke.info/2025/10/29/funky-chunks-2.html Jetty terminates chunk extension parsing at \r\n inside quoted strings instead of treating this as an error. POST / HTTP/1.1 Host: localhost Transfer-Encoding: chunked 1;ext="val X 0 GET /smuggled HTTP/1.1 ... Note how the chunk extension does not close the double quotes, and it is able to inject a smuggled request.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | jetty-minimal | 0 | 9.4.58-4.1 |
Related vulnerabilities
- CVE-2026-5795 In Eclipse Jetty, the class JASPIAuthenticator initiates the authentication checks, which… Also affects jetty-minimal
- CVE-2025-11143 The Jetty URI parser has some key differences to other common parsers when evaluating… Also affects jetty-minimal
- CVE-2024-8184 Eclipse Jetty's ThreadLimitHandler.getRemote() vulnerable to remote DoS attacks Also affects jetty-minimal
- CVE-2026-112212 GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.3 before… CWE-444
- CVE-2026-111750 AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. CWE-444
- CVE-2026-88829 A flaw was found in BusyBox httpd's reverse proxy feature. CWE-444
- CVE-2026-94439 When an HTTP server handler sends a 2xx response to an HTTP/1 CONNECT request and returns… CWE-444
- CVE-2026-78660 Historically, we have been rather lax about malformed framing-related headers in our… CWE-444