Summary
CVE-2026-69217 is an HTTP request smuggling vulnerability in the Ember server component of http4s, a Scala HTTP library. The Ember HTTP/1.1 parser accepts requests containing duplicate Content-Length headers with differing values and uses the last value instead of rejecting the message as required by RFC 9112, allowing attackers to smuggle requests past front-end proxies and load balancers. The issue has a CVSS v3.1 base score of 8.7 (High).
Technical details
- Root cause: Ember’s HTTP/1.1 request parser does not enforce RFC 9112 §6.3, which mandates that a server respond with
400 Bad Requestand close the connection when it encounters multipleContent-Lengthheaders with conflicting values. Instead, Ember accepts the request and uses the last supplied value to determine body length. - Trigger conditions: An attacker sends a crafted HTTP/1.1 request containing two or more
Content-Lengthheaders with differing values to a deployment where http4s Ember sits behind an intermediary (reverse proxy, load balancer, CDN) that interprets the duplicate headers differently (e.g., using the first value instead of the last, or vice versa) — a classic CL.CL desynchronization scenario. - Attack vector: Network-based (AV:N), no authentication or user interaction required, but requires high attack complexity (AC:H) since exploitation depends on the specific behavior of the front-end intermediary relative to Ember.
- Impact: Successful exploitation can allow an attacker to bypass front-end security controls, hijack other users’ requests (potentially capturing cookies, authorization tokens, or other sensitive headers), poison shared proxy/CDN caches, and in client-side deployments (via a malicious upstream server) affect shared proxy configurations. The vulnerability carries a Scope Changed rating with high confidentiality and integrity impact; there is no availability impact.
Affected software
http4s-ember-core(and dependent Ember server modules) for Scala 2.12, 2.13, and 3:- Versions ≤ 0.23.34
- Versions 1.0.0-M1 through 1.0.0-M46
Severity
- CVSS v3.1 Base Score: 8.7 (High)
- Vector:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N - CWE-444: Inconsistent Interpretation of HTTP Requests ("HTTP Request/Response Smuggling")
Mitigation and recommended actions
- Immediate: Upgrade http4s Ember to version 0.23.35 (0.x line) or 1.0.0-M47 (1.0.0 milestone line) or later, both of which reject requests containing duplicate, conflicting
Content-Lengthheaders. - If immediate patching is not possible:
- Deploy or configure a strictly RFC 9112-compliant reverse proxy/load balancer in front of Ember that itself rejects requests with duplicate or conflicting
Content-Lengthheaders, preventing desynchronization before requests reach the application. - Audit front-end intermediaries (CDNs, load balancers, API gateways) for consistent, spec-compliant handling of duplicate
Content-Lengthheaders to eliminate interpretation mismatches. - Monitor for anomalous requests containing multiple
Content-Lengthheaders as a potential indicator of smuggling attempts.
- Deploy or configure a strictly RFC 9112-compliant reverse proxy/load balancer in front of Ember that itself rejects requests with duplicate or conflicting

