Critical severity · published Sep 15, 2026
CVE-2026-69204
Http4s: Ember accepts Transfer-Encoding combined with Content-Length (CL.TE request smuggling)
9.2
CVSS
0.6%
EPSS
No
On KEV
Description
Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, Ember HTTP/1.1 does not reject messages containing both Transfer-Encoding and Content-Length, so an intermediary and Ember can select different body framing rules. When ember-server is behind a keep-alive intermediary that forwards both headers and frames by Content-Length, an unauthenticated attacker can smuggle a second request, bypass intermediary access controls, poison caches, or cause a victim request to be joined to an attacker-controlled prefix. The shared response parser can also desynchronize an ember-client connection when a malicious or compromised upstream sends both headers. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.6% · higher than 47% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
HT
http4s · http4s
< 0.23.35; >= 1.0.0-M1, < 1.0.0-M47 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-69204
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-69204
github.com
https://github.com/http4s/http4s/commit/9feaf8677951a52af906ae9664ff6f0543d9d810
github.com
https://github.com/http4s/http4s/releases/tag/v0.23.35
github.com
https://github.com/http4s/http4s/releases/tag/v1.0.0-M47
github.com
https://github.com/http4s/http4s/security/advisories/GHSA-8h4c-x2wg-6xp8
More from http4s
8.7
CVE-2026-69217
Http4s: Ember Server accepts duplicate Content-Length headers
8.7
CVE-2026-69205
Http4s: Ember Transfer-Encoding value parsing (TE.CL / TE.0 request smuggling)
8.2
CVE-2026-54556
Http4s: HTTP/2 Denial of Service with Ember Backend
7.5
CVE-2026-88975
Http4s: Ember HTTP/2 buffers a frame's declared payload before checking SETTINGS_MAX_FRAME_SIZE
7.5
CVE-2026-69202
Http4s Ember HTTP/2: unbounded inbound body buffering
