ZeroHour

CVE-2026-69217

moderate

HTTP Request Smuggling via Duplicate Content-Length Headers in http4s Ember

CVSS 3.1
8.7 high
EPSS
Published
()
Modified
AI analysis

http4s, the Scala HTTP toolkit, ships an HTTP/1.1 parser in its Ember backend that accepts requests containing multiple, conflicting Content-Length headers and uses the last value instead of rejecting the message. When an Ember-based server sits behind a keep-alive intermediary (such as a reverse proxy, load balancer, or CDN) that interprets a different Content-Length occurrence, an unauthenticated attacker can perform CL.CL request smuggling. Successful smuggling can bypass front-end access controls, capture headers (including credentials or cookies) of a subsequent user sharing the connection, or poison caches; the shared client parser can likewise misframe responses from a malicious or compromised upstream when the client proxies for multiple downstream consumers. All Ember servers and clients on versions prior to 0.23.35 and prior to 1.0.0-M47 are affected, with fixes available in 0.23.35 and 1.0.0-M47. There is no evidence of in-the-wild exploitation and no public proof of concept, though the flaw is trivially describable and requires no authentication to attempt.

What to do: Upgrade to http4s 0.23.35 (0.23.x line) or 1.0.0-M47 (milestone line) as soon as possible. Until patched, configure your front-end proxy or load balancer to reject (not normalize) requests containing multiple differing Content-Length headers, and review access logs for malformed framing that could indicate smuggling attempts. Audit any Ember-based services deployed behind keep-alive intermediaries and any services using the Ember client to proxy traffic for downstream consumers, since both server-side and client-side misframing apply.

Affected
http4s Ember server and shared HTTP/1.1 client parserAll versions prior to 0.23.35 (0.23.x and earlier)
http4s Ember server and shared HTTP/1.1 client parser (1.0.0 milestone series)Milestone releases prior to 1.0.0-M47
Estimated exposure
moderatePlausibly a few thousand production deployments (order of magnitude 1k–10k services) — http4s is the leading native Scala HTTP framework with steady Maven Central adoption, but the Scala server ecosystem is small relative to mainstream stacks and no active-install telemetry exists, so this is an order-of-magnitude estimate…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, Ember’s HTTP/1.1 parser accepts differing duplicate Content-Length headers and uses the last value instead of rejecting the message. When an Ember server is behind a keep-alive intermediary that selects a different occurrence, an unauthenticated attacker can create CL.CL request smuggling that bypasses front-end controls, captures a later user’s headers, or poisons a cache. The shared client parser can also misframe responses from a malicious or compromised upstream when the client acts as a proxy for multiple downstream consumers. This issue is fixed in versions 0.23.35 and 1.0.0-M47.

Weakness
CWE-444
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N

In the news

No ingested article mentions this CVE yet.