High

Http4s Ember HTTP/2: unbounded continuation frame accumulation

  • Disclosed: 15.09.2026
  • Updated: 11.10.2026 13:20

When Ember receives an HTTP/2 HEADERS or PUSH_PROMISE frame without the END_HEADERS flag, it buffers the header block fragment and waits for subsequent CONTINUATION frames. These accumulate unbounded until the connection closes.

Impact

A remote, unauthenticated peer can exhaust the heap on any Ember endpoint that has HTTP/2 enabled:

  • ember-server with .withHttp2: any HTTP/2 client can trigger this against any reachable path (including paths that return 404). No authentication is required because the attack completes before the request is decoded.
  • ember-client with .withHttp2: a malicious or compromised origin server can trigger this via the response header block. A single in-flight request is sufficient.

Memory consumption is bounded only by the attacker's upload bandwidth and the connection lifetime.

Prerequisites

  • EmberServerBuilder configured with .withHttp2.
    • For the server: the attacker can establish an HTTP/2 connection
    • For the client: the application makes a request to an attacker-controlled origin. HTTP/2 incoming headers exceeding the configured size limit are buffer in order to generate an informative HTTP 413 response. If a client does not stop sending headers, this leads to memory exhaustion.

Patches

The fix bounds the accumulated header-block size at SETTINGS_MAX_HEADER_LIST_SIZE (derived from EmberServerBuilder.maxHeaderSize / EmberClientBuilder.maxResponseHeaderSize). When a CONTINUATION frame would push the accumulated block over that limit, the connection is terminated with GOAWAY. The receiveHeadersTimeout additionally bounds how long an incomplete header block may remain open.

Workarounds

  • Disable HTTP/2 (.withHttp2) until upgraded (default). It is off by default.
  • If HTTP/2 must remain enabled, place ember behind a reverse proxy that terminates HTTP/2 and speaks HTTP/1.1 to ember.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Java / Kotlin (Maven) org.http4s:http4s-ember-core_2.12 < 0.23.35 0.23.35
Java / Kotlin (Maven) org.http4s:http4s-ember-core_2.13 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
Java / Kotlin (Maven) org.http4s:http4s-ember-core_3 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47

References

CVSS score 7.5/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness (CWE)
CWE-770
Platform
Java / Kotlin (Maven)
Package
org.http4s:http4s-ember-core_2.12, org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_3
Disclosed
15.09.2026
Updated
11.10.2026 13:20

Sources and licenses

OSV / GitHub Advisory Database - GHSA-cp4q-fqw9-4hf6 - CC BY 4.0

Vulnerability history: org.http4s:http4s-ember-core_2.12

All published vulnerabilities of this package (Java / Kotlin (Maven)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (11) in the archive
Total entries
11
First → latest
09.2025 09.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 1
  • High 7
  • Medium 3

Disclosures per year

  1. 2025: 1
  2. 2026: 10
Severity:
  1. Http4s Ember HTTP/2: unbounded continuation frame accumulation this entry
    High · 7.5 CVE-2026-69218 < 0.23.35 0.23.35
  2. High · 7.5 CVE-2026-69213 < 0.23.35 0.23.35
  3. High · 7.5 CVE-2026-69203 < 0.23.35 0.23.35
  4. High · 7.5 CVE-2026-69202 < 0.23.35 0.23.35
  5. High CVE-2026-54556 < 0.23.35 0.23.35

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.