CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-2332

CVE-2026-2332: HTTP Request Smuggling in Eclipse Jetty via Chunked Extension Quoted-String Parsing

Alon Barad
Alon Barad
Software Engineer

Apr 15, 2026·5 min read·376 visits

Executive Summary (TL;DR)

Jetty incorrectly terminates HTTP/1.1 chunk extension parsing when encountering a newline inside a quoted string, allowing attackers to desynchronize proxies and back-ends to smuggle malicious requests.

Eclipse Jetty's HTTP/1.1 parser contains a state-machine flaw when handling chunked transfer encoding extensions, leading to critical HTTP Request Smuggling via "Funky Chunks" techniques.

Vulnerability Overview

Eclipse Jetty is susceptible to HTTP Request Smuggling (CWE-444) within its HTTP/1.1 parser. The vulnerability targets the parsing logic for chunked transfer encoding, specifically how the parser handles chunk extensions containing quoted strings. This flaw permits an attacker to desynchronize the request stream between a front-end proxy and the Jetty back-end.

The vulnerability is classified as a variant of the "Funky Chunks" exploitation methodology. It exploits ambiguous handling of line terminators within HTTP message bodies. By manipulating the chunk size parameters, an attacker can manipulate how different servers in the request chain interpret the start and end of HTTP requests.

Successful desynchronization occurs because the front-end proxy and the Jetty back-end disagree on the boundaries of the HTTP message. This disagreement allows the injection of a smuggled, secondary request that bypasses edge security controls and is executed directly by the internal application logic.

Root Cause Analysis

According to RFC 9112 and RFC 9110, HTTP/1.1 chunk extensions can encapsulate values within quoted strings. These quoted strings are strictly prohibited from containing raw Carriage Return Line Feed (CRLF) sequences. The vulnerability exists within the state machine of Jetty's HttpParser.java during the CHUNK_PARAMS parsing phase.

When the parser encounters a double quote character, it fails to securely bound the quoted-string state. Instead of rejecting a CRLF sequence encountered within the quotes, or treating it as a literal malformed character, Jetty prioritizes the global search for \r\n. The parser incorrectly interprets the embedded CRLF as the termination of the chunk header.

This premature termination creates a fundamental synchronization discrepancy. An RFC-compliant front-end proxy parses the chunk extension correctly, treating the embedded CRLF as part of a malformed extension and forwarding the payload as a single continuous request. The Jetty back-end stops parsing the chunk header at the first CRLF, interpreting the subsequent bytes as the chunk body and eventually as an entirely new HTTP request.

Code Analysis

The core vulnerability resides in the state-machine execution within HttpParser.java. During the processing of the CHUNK_PARAMS state, Jetty fails to suppress the detection of end-of-line markers when processing a quoted string.

The logic incorrectly prioritizes the structural markers of the HTTP protocol over the encapsulation rules of the quoted string parameter.

// Conceptual representation of the flawed parsing logic in Jetty
while (parsingChunkParams) {
    byte ch = buffer.get();
    if (ch == '"') {
        inQuotedString = !inQuotedString;
    }
    // VULNERABILITY: CRLF check executes regardless of inQuotedString state
    if (ch == '\n') {
        transitionTo(State.CHUNK_BODY);
    }
}

The patched implementations (e.g., in commit 91435debf6bb5b2701e96f2202962ea262d38236) modify this logic to properly track quoted string boundaries. The parser now implements strict validation to reject control characters like CR or LF within a quoted string, aligning the parser with RFC compliance and preventing premature header termination.

Exploitation Methodology

The "Funky Chunks" exploitation technique requires sending a specifically crafted HTTP POST request using chunked transfer encoding. The attacker injects a chunk extension containing an unclosed double quote followed by a raw newline.

POST / HTTP/1.1
Host: vulnerable-app.com
Transfer-Encoding: chunked
 
1;ext="val
X
0
 
GET /smuggled-endpoint HTTP/1.1
Host: internal-service

The proxy forwards this payload as a single request because the chunk extension does not appear properly terminated according to its internal logic. Jetty parses 1;ext="val and terminates the header at the newline.

Jetty reads X as the 1-byte chunk body declared by the hexadecimal 1. The subsequent 0 terminates the chunked stream for the first request, causing Jetty to process the GET /smuggled-endpoint payload as a secondary, smuggled request.

Desynchronization Mechanism

The exploit relies entirely on the behavioral difference between the proxy and the back-end server. The following sequence illustrates the stream interpretation.

The front-end proxy perceives the entire payload as a single, in-flight POST request. The Jetty back-end splits the stream, effectively executing the GET /smuggled-endpoint request in the context of the back-end connection pool.

Impact Assessment

Successful exploitation grants the attacker the ability to bypass front-end security controls, such as Web Application Firewalls (WAF) or access control lists (ACL). The smuggled request is processed directly by the back-end application, evading all edge validation.

Depending on the application routing, this flaw facilitates cache poisoning, cross-user session hijacking, and unauthorized access to restricted endpoints. An attacker can manipulate backend routing to extract sensitive data belonging to other users sharing the same connection pool.

The CVSS 3.1 base score is 7.4 (High), reflecting the significant impact on confidentiality and integrity. The attack complexity is rated High because successful exploitation explicitly requires a specific behavioral differential between the upstream proxy and the Jetty server.

Remediation and Mitigation

Administrators must upgrade Eclipse Jetty to versions 9.4.60, 10.0.28, 11.0.28, 12.0.33, or 12.1.7. These releases contain the corrected state machine logic for parsing HTTP/1.1 chunk extensions, neutralizing the vulnerability at the source.

If immediate patching is unfeasible, administrators can deploy interim mitigations at the proxy layer. Front-end load balancers or WAFs should be configured to strictly normalize HTTP/1.1 chunked requests. Stripping chunk extensions entirely before forwarding the request to the back-end neutralizes this specific exploitation vector.

As a defense-in-depth measure, disabling HTTP/1.1 keep-alive connections between the proxy and the back-end prevents request smuggling entirely. This approach ensures each request utilizes a distinct TCP connection, eliminating the shared stream required for desynchronization, though this incurs a notable performance penalty.

Official Patches

Eclipse FoundationOfficial Jetty Security Advisory GHSA-355h-qmc2-wpwf

Fix Analysis (1)

Technical Appendix

CVSS Score
7.4/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Probability
0.03%
Top 91% most exploited

Affected Systems

Eclipse Jetty 9.4.0 - 9.4.59Eclipse Jetty 10.0.0 - 10.0.27Eclipse Jetty 11.0.0 - 11.0.27Eclipse Jetty 12.0.0 - 12.0.32Eclipse Jetty 12.1.0 - 12.1.6Web applications utilizing vulnerable Jetty versions behind a reverse proxy

Affected Versions Detail

Product
Affected Versions
Fixed Version
Eclipse Jetty
Eclipse Foundation
9.4.0 <= version <= 9.4.599.4.60
Eclipse Jetty
Eclipse Foundation
10.0.0 <= version <= 10.0.2710.0.28
Eclipse Jetty
Eclipse Foundation
11.0.0 <= version <= 11.0.2711.0.28
Eclipse Jetty
Eclipse Foundation
12.0.0 <= version <= 12.0.3212.0.33
Eclipse Jetty
Eclipse Foundation
12.1.0 <= version <= 12.1.612.1.7
AttributeDetail
CWE IDCWE-444
Attack VectorNetwork
CVSS v3.1 Score7.4 (High)
EPSS Score0.00031
ImpactHigh Confidentiality, High Integrity
Exploit StatusProof-of-Concept (PoC)
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1139Adversary-in-the-Middle: HTTP Request Smuggling
Initial Access
CWE-444
Inconsistent Interpretation of HTTP Requests

Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

Known Exploits & Detection

smugchunksScanner and testing toolkit for identifying Funky Chunks vulnerabilities

Vulnerability Timeline

Initial 'Funky Chunks' research published by Jeppe Bonde Weikop
2025-06-18
Addendum to 'Funky Chunks' research published detailing further techniques
2025-10-29
Fixes begin appearing in Jetty SNAPSHOT versions (v12.1.7-SNAPSHOT)
2026-01-27
CVE-2026-2332 officially published and advisories released
2026-04-14

References & Sources

  • [1]Jetty Security Advisory
  • [2]Eclipse CVE Assignment
  • [3]Funky Chunks Research Part 1
  • [4]Funky Chunks Research Part 2
  • [5]CVE Record CVE-2026-2332
  • [6]Jetty Project Commit 91435debf6bb5b2701e96f2202962ea262d38236

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 6 hours ago•CVE-2026-54347
8.7

CVE-2026-54347: Stored Cross-Site Scripting in Froxlor DNS TXT Record Configuration

A critical stored Cross-Site Scripting (XSS) vulnerability was identified in Froxlor server administration software panel before version 2.3.8. Authenticated customers with DNS editor privileges can inject malicious JavaScript into DNS TXT records. Because the application processes these values via a raw formatting callback without context-aware HTML entity encoding, the payload executes in the security context of administrative users who view the affected domain's DNS zones.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 7 hours ago•CVE-2026-54348
7.2

CVE-2026-54348: Second-Order SQL Injection in Froxlor API Layer

An authenticated administrator with privileges to manage admin accounts (such as change_serversettings) can execute arbitrary SQL commands via a second-order SQL injection vulnerability. The flaw resides in Froxlor's administrative API endpoints, specifically during the handling of IP address mapping parameters which are stored as serialized arrays and later interpolated without sanitization into active database queries. This vulnerability allows high-privileged administrative attackers to compromise the database. By injecting a payload into administrative profile metadata, an attacker can extract sensitive credentials, manipulate backend settings, or potentially disrupt database integrity. The vulnerability affects all versions of Froxlor prior to 2.3.8.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 8 hours ago•CVE-2026-54543
5.4

CVE-2026-54543: DNS Resource Record (RR) Injection in Froxlor DomainZones API

CVE-2026-54543 is a DNS Resource Record (RR) Injection vulnerability in Froxlor, an open-source server administration control panel. Prior to version 2.3.8, the DomainZones.add API command failed to perform strict sanitization and validation on the user-controlled record (label) and type parameters before serializing them into BIND-compatible zone files. An authenticated customer with DNS zone management permissions can inject control characters, breaking out of the original record context to define unauthorized resource records within managed zones.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 8 hours ago•CVE-2026-42533
9.2

CVE-2026-42533: NGINX Map Directive and Regex Matching Pre-Auth Heap Buffer Overflow & Info Leak

CVE-2026-42533 is a critical security vulnerability discovered in NGINX Open Source, NGINX Plus, NGINX Ingress Controller, and related products, referred to as the 'Two-Pass Capture-Clobbering' bug. The flaw is situated within NGINX's internal evaluation engine when handling complex variables, exposing a heap-based buffer overflow and information leak when a configuration chains regular expression-based map directives with numbered capture groups. An unauthenticated remote attacker can exploit this weakness by transmitting crafted HTTP requests to trigger remote code execution or defeat ASLR.

Alon Barad
Alon Barad
7 views•7 min read
•about 9 hours ago•CVE-2026-55593
6.5

CVE-2026-55593: Persistent Administrative Hijacking via Cross-Site Request Forgery in Froxlor Ajax Router

Froxlor prior to version 2.3.8 contains a high-severity architectural flaw where the standalone lib/ajax.php entry point bypasses the centralized request validation in lib/init.php. Unauthenticated remote attackers can leverage Cross-Site Request Forgery (CSRF) to induce authenticated administrators to submit forged requests that modify API key whitelists and expiration dates, potentially yielding persistent, out-of-band administrative control.

Amit Schendel
Amit Schendel
6 views•8 min read
•about 10 hours ago•CVE-2026-62988
9.0

CVE-2026-62988: Multi-Factor Authentication and Credential Bypass in Froxlor API

An insecure data retrieval flaw in the Froxlor server administration panel API allows authenticated remote attackers to retrieve unredacted bcrypt password hashes and Base32-encoded Time-Based One-Time Password (TOTP) seeds. Affected endpoints include several 'get' and 'listing' handlers for customers, administrators, and FTP accounts. Utilizing these leaked parameters, attackers can crack the password hashes offline and concurrently generate valid second-factor authentication codes to completely bypass access controls.

Amit Schendel
Amit Schendel
8 views•6 min read