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.
Published: 2026-09-15
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory consumption (Denial of Service)
Action: Patch
AI Analysis

Impact

An unbounded outbound frame queue in the Ember HTTP/2 implementation of http4s allows a peer that stops reading to cause the server to enqueue acknowledgements or WINDOW_UPDATE frames faster than they are drained. This results in heap memory exhaustion, potentially terminating the server process and causing denial of service for any application configured with http4s HTTP/2 support. The flaw is a classic example of CWE-400 (Uncontrolled Resource Consumption) and CWE-770 (Abusing a Resource), and is reachable by any unauthenticated HTTP/2 client sending PING, SETTINGS, or DATA frames over a connection to a vulnerable server.

Affected Systems

The issue affects the http4s framework, Ember HTTP/2 server and client modules, specifically versions prior to 0.23.35 and 1.0.0-M47. Any application built with http4s and enabling HTTP/2 should consider itself impacted until patched.

Risk and Exploitability

The vulnerability has a CVSS score of 7.5, indicating high severity for remote denial of service. The EPSS score is below 1%, reflecting a very low probability of exploitation in the wild, and the vulnerability is not listed in the CISA KEV catalog. Attackers can exploit it by initiating an unauthenticated HTTP/2 connection and sending PING, SETTINGS, or DATA frames that trigger the unbounded queue, eventually exhausting the server’s heap memory.

Generated by OpenCVE AI on September 17, 2026 at 06:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade http4s to version 0.23.35 or later, which replaces the unbounded queue with a bounded, back‑pressured implementation.
  • Rebuild and redeploy the application to embed the updated library.
  • Restart the application to ensure the new library is loaded and the back‑pressured queue is active.

Generated by OpenCVE AI on September 17, 2026 at 06:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8f3q-3jmv-7prw Http4s Ember HTTP/2 has an unbounded outbound frame queue
History

Tue, 15 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
First Time appeared Http4s
Http4s http4s
Vendors & Products Http4s
Http4s http4s

Tue, 15 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
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.
Title Http4s Ember HTTP/2: unbounded outbound frame queue
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-17T16:43:14.092Z

Reserved: 2026-08-03T16:57:50.125Z

Link: CVE-2026-69213

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-09-15T19:17:38.317

Modified: 2026-09-16T20:39:16.610

Link: CVE-2026-69213

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-17T06:45:03Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-770

    Allocation of Resources Without Limits or Throttling