Summary
CVE-2026-54556 is a denial-of-service vulnerability in http4s, a Scala HTTP library, affecting servers that use the Ember backend with HTTP/2 enabled. The flaw is an "HPACK bomb" issue in which small, highly compressed HTTP/2 header blocks decode into disproportionately large amounts of data, allowing an unauthenticated remote attacker to exhaust server memory. The issue has a CVSS score of 8.2 (High).
Technical details
- Root cause: The HPACK decoder in
ember-core(Hpack.scala) concatenates HEADERS and CONTINUATION frame fragments and decodes them before fully validating size limits. Critically, the configured maximum header size does not account for the expansion produced by indexed headers, so the enforced limit can be bypassed via HPACK compression/data amplification. - Trigger conditions: An attacker sends crafted HTTP/2 requests containing highly compressed header blocks (relying on HPACK’s indexed header table) to an http4s server running the Ember backend with HTTP/2 enabled.
- Attack vector: Network — no authentication or special privileges required; requires only the ability to open an HTTP/2 connection to the target server (CVSS AT:P reflects minor attack complexity from needing an HTTP/2-capable connection).
- Impact: Decoded header data is held in memory; with enough concurrent malicious connections, this leads to excessive heap consumption and can crash the server process with an OutOfMemoryError, resulting in denial of service. Confidentiality and integrity are not impacted — only availability.
Affected software
org.http4s:http4s-ember-core_2.12: versions ≤ 0.23.34org.http4s:http4s-ember-core_2.13: versions ≤ 0.23.34, and ≥ 1.0.0-M1, < 1.0.0-M46org.http4s:http4s-ember-core_3: versions ≤ 0.23.34, and ≥ 1.0.0-M1, < 1.0.0-M46- Applies to any http4s server built on the Ember backend with HTTP/2 support enabled.
Severity
- CVSS v4.0 Score: 8.2 (High)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade to the patched releases:
http4s-ember-core0.23.35 (for the 0.23.x line)http4s-ember-core1.0.0-M47 (for the 1.0.0 milestone line)
- If immediate patching is not possible: Disable HTTP/2 support in the Ember backend configuration until the upgrade can be applied, removing the affected code path from being reachable.
- General hardening: Monitor server memory usage for anomalous spikes correlated with HTTP/2 connections, and consider placing rate limiting or connection limits in front of Ember-based services as a defense-in-depth measure while patching is rolled out.

