ZeroHour

CVE-2026-69213

niche

Unauthenticated HTTP/2 memory-exhaustion DoS in http4s Ember

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

http4s Ember, the Scala HTTP server and client implementation, serializes outbound HTTP/2 frames through a single unbounded queue consumed by its writeLoop. An unauthenticated remote attacker can trigger the flaw by sending a stream of PING, SETTINGS, or DATA frames while refusing to read responses, causing Ember to enqueue acknowledgments and WINDOW_UPDATE frames faster than the writer drains them, which exhausts heap memory and crashes or degrades the service. This only affects servers explicitly built with withHttp2, but the same shared behavior also exposes an ember-client that connects to a malicious HTTP/2 server. The vulnerability is rated high (CVSS 3.1: 7.5) with availability-only impact and requires no privileges or user interaction. There is no known public proof of concept and no evidence of exploitation in the wild, and the issue is fixed in versions 0.23.35 and 1.0.0-M47.

What to do: Upgrade to http4s 0.23.35 (stable line) or 1.0.0-M47 (milestone line), where outbound queues are bounded and backpressured. If immediate upgrade is not possible, remove withHttp2 from Ember servers or front them with a reverse proxy that enforces HTTP/2 frame limits, and restrict ember-client usage to trusted upstream servers. Monitor JVM heap usage and connection behavior for unexpected growth from slow-reading peers.

Affected
http4s-ember-server (with withHttp2 enabled)all versions prior to 0.23.35 and prior to 1.0.0-M47
http4s-ember-client (HTTP/2 against untrusted servers)all versions prior to 0.23.35 and prior to 1.0.0-M47
Estimated exposure
nichelikely a few thousand affected deployments (unknown exact count) — http4s is a widely used Scala web library but Scala server deployments are a small fraction of the public web, and the server-side flaw requires the opt-in withHttp2 setting, so no reliable install counts exist.

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 HTTP/2 serializes outbound frames through one unbounded queue consumed by writeLoop. When the peer stops reading, an unauthenticated HTTP/2 client can continue sending PING, SETTINGS, or DATA frames that cause Ember to enqueue acknowledgments or WINDOW_UPDATE frames faster than the writer drains them, exhausting heap memory on a server built with withHttp2. The shared behavior also affects an ember-client connected to a hostile HTTP/2 server, and the patch replaces the unbounded path with bounded, backpressured outbound queues. This issue is fixed in versions 0.23.35 and 1.0.0-M47.

Ecosystems
maven
Weakness
CWE-400, CWE-770
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
GHSA
GHSA-8f3q-3jmv-7prw (high)

In the news

No ingested article mentions this CVE yet.