CVE-2026-69213
nicheUnauthenticated HTTP/2 memory-exhaustion DoS in http4s Ember
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.
| 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 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.