Hoch

Http4s Ember HTTP/2: unbounded continuation frame accumulation

  • Veröffentlicht: 15.09.2026
  • Aktualisiert: 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.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben 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

Verweise

CVSS-Wert 7.5/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Schwäche (CWE)
CWE-770
Plattform
Java / Kotlin (Maven)
Paket
org.http4s:http4s-ember-core_2.12, org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_3
Veröffentlicht
15.09.2026
Aktualisiert
11.10.2026 13:20

Quellen und Lizenzen

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

Schwachstellenhistorie: org.http4s:http4s-ember-core_3

Alle veröffentlichten Schwachstellen dieses Pakets (Java / Kotlin (Maven)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (11) im Archiv
Einträge insgesamt
11
Erste → letzte
09.2025 09.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 1
  • Hoch 7
  • Mittel 3

Veröffentlichungen pro Jahr

  1. 2025: 1
  2. 2026: 10
Schweregrad:
  1. Hoch · 7.5 CVE-2026-88975 < 0.23.37, >= 1.0.0-M1, < 1.0.0-M48 0.23.37, 1.0.0-M48
  2. Http4s Ember HTTP/2: unbounded continuation frame accumulation dieser Eintrag
    Hoch · 7.5 CVE-2026-69218 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  3. Hoch · 7.5 CVE-2026-69213 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  4. Hoch · 8.7 CVE-2026-69205 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  5. Kritisch CVE-2026-69204 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  6. Hoch · 7.5 CVE-2026-69203 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  7. Hoch · 7.5 CVE-2026-69202 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  8. Hoch CVE-2026-54556 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.