CVE-2026-66338 Overview
A flaw exists in libsoup, a widely deployed HTTP client and server library used across GNOME and Linux applications. The chunked transfer encoding parser accepts inputs that violate RFC 9112, including leading whitespace, plus sign prefixes, and trailing invalid characters in chunk size fields. When libsoup sits behind a strict frontend proxy, the parsing differential enables HTTP request smuggling attacks. The vulnerability is tracked under [CWE-444] (Inconsistent Interpretation of HTTP Requests).
Critical Impact
Attackers can smuggle HTTP requests through frontend proxies to bypass security controls, poison caches, or hijack user sessions when libsoup operates as a backend HTTP handler.
Affected Products
- libsoup HTTP client/server library
- Red Hat Enterprise Linux distributions bundling libsoup
- GNOME applications and services that rely on libsoup for HTTP handling
Discovery Timeline
- 2026-07-24 - CVE-2026-66338 published to NVD
- 2026-07-27 - Last updated in NVD database
Technical Details for CVE-2026-66338
Vulnerability Analysis
The defect resides in libsoup's chunked transfer encoding parser. RFC 9112 defines chunk size as a strict hexadecimal value followed by CRLF or a chunk extension. libsoup instead uses a permissive parsing routine that tolerates leading whitespace, a leading + sign, and trailing non-hex characters. This tolerant behavior diverges from stricter HTTP intermediaries such as reverse proxies, load balancers, and web application firewalls.
When a strict frontend proxy forwards requests to a libsoup-based backend, the two components interpret chunk boundaries differently. An attacker can craft a request where the frontend and backend disagree on where one request ends and the next begins. The resulting desynchronization allows a smuggled request to be injected into another user's connection.
Root Cause
The root cause is inconsistent HTTP message parsing between libsoup and stricter upstream components. The parser silently normalizes malformed chunk-size tokens instead of rejecting them per RFC 9112. This creates a classic HTTP request smuggling primitive tied to CL.TE or TE.TE desynchronization patterns.
Attack Vector
Exploitation requires a specific deployment topology: a strict HTTP frontend proxy forwarding traffic to a libsoup-based backend server. The attacker sends a single HTTP request containing a chunked body with a malformed chunk-size token, for example one prefixed with whitespace or a plus character. The frontend accepts or rejects the token according to its own rules, while libsoup silently parses it differently. The smuggled request payload is then interpreted by the backend as a new request from the next client on the shared connection. Successful exploitation can hijack sessions, poison caches, or bypass access controls enforced only at the proxy layer. Public exploitation code is not available at this time.
Detection Methods for CVE-2026-66338
Indicators of Compromise
- HTTP requests containing chunk-size fields with leading whitespace, + prefixes, or trailing non-hex characters in proxy or web server logs
- Unexpected 400-series responses from the frontend paired with successful backend processing of the same connection
- Session or authentication anomalies where users receive responses intended for other clients
- Cache entries containing content that does not match the original request URI
Detection Strategies
- Deploy signature and anomaly rules on the frontend proxy or WAF that flag non-canonical chunk-size encodings before requests reach libsoup
- Compare request framing between proxy access logs and application logs to identify desynchronization patterns
- Inspect HTTP traffic for TE.TE and CL.TE smuggling primitives using dedicated request smuggling detection tooling
Monitoring Recommendations
- Monitor libsoup and application server versions across the fleet to identify unpatched hosts
- Track anomalous cross-request contamination such as unexpected Set-Cookie values or session identifiers appearing in unrelated responses
- Alert on sudden increases in malformed chunked-encoded requests received at the network edge
How to Mitigate CVE-2026-66338
Immediate Actions Required
- Update libsoup to the patched version supplied by your Linux distribution as soon as it is available
- Enforce strict RFC 9112 chunked encoding validation at any frontend proxy or WAF sitting in front of libsoup services
- Audit deployment topologies to identify libsoup services exposed behind HTTP intermediaries
Patch Information
Refer to the Red Hat CVE-2026-66338 Advisory and Red Hat Bug Report #2506950 for authoritative fix availability and package versions. Apply vendor updates through your standard patch management process once released.
Workarounds
- Configure the frontend proxy to reject any chunked request whose chunk-size field is not a bare hexadecimal token followed by CRLF or a valid chunk extension
- Terminate HTTP connections at the proxy and re-serialize requests to the backend to eliminate parser differentials
- Disable HTTP keep-alive between the proxy and libsoup backend where operationally acceptable, reducing the smuggling blast radius
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

