Summary
CVE-2026-69205 is a high-severity (CVSS 8.7) HTTP request smuggling vulnerability in the Ember server backend of http4s, a Scala HTTP library. The flaw arises from Ember’s HTTP/1.1 header parser using case-sensitive substring matching (hValue.contains("chunked")) to detect chunked transfer encoding, rather than the RFC 9112-mandated case-insensitive token comparison. Attackers can craft requests using non-standard casing (e.g., Transfer-Encoding: Chunked) or otherwise malformed Transfer-Encoding values that cause Ember and front-end intermediaries to disagree on request framing, enabling TE.CL/TE.0-style smuggling.
Technical details
- Root cause: Ember’s Transfer-Encoding header parser performs a case-sensitive substring check for the literal
"chunked"instead of parsing and comparing transfer-coding tokens case-insensitively as required by RFC 9112 §7, and also relies on platform-default charset decoding, which can be abused via Unicode case-folding tricks. - Trigger conditions: An attacker sends an HTTP request with a Transfer-Encoding header value that varies in case or is otherwise malformed in a way that a compliant intermediary (proxy, load balancer, CDN) interprets differently than Ember does — for example, treating the request as chunked-encoded on one side and as a Content-Length or non-chunked request on the other.
- Attack vector: Network-based (AV:N), requires no authentication or user interaction, but has high attack complexity (AC:H) since it depends on the specific configuration and behavior of an intermediary sitting in front of the Ember server.
- Impact: Desynchronization between Ember and front-end proxies/intermediaries can allow attackers to bypass front-end access controls, smuggle requests to hijack other users’ sessions (exposing cookies, authorization headers, or other sensitive data), and poison shared web caches. When http4s Ember acts as a client/gateway to an untrusted upstream, response smuggling is also possible.
Affected software
http4s-ember-core(Scala 2.12/2.13/3) versions up to and including 0.23.34http4s-ember-core(Scala 2.13/3) 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
Mitigation and recommended actions
- Immediate: Upgrade http4s Ember to version 0.23.35 or 1.0.0-M47, both of which fix the Transfer-Encoding parsing logic to perform RFC-compliant, case-insensitive comparison.
- If patching is not immediately possible:
- Configure any intermediaries/proxies in front of Ember to fully buffer and re-encode request bodies rather than passing through raw framing.
- Normalize Transfer-Encoding header values (e.g., force lowercase, reject non-canonical tokens) before forwarding requests to Ember.
- Disable HTTP keep-alive/connection reuse between intermediaries and Ember backends to limit the blast radius of any successful smuggling attempt.

