Listen to this Post
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 where small, highly compressed HTTP/2 header blocks decode into disproportionately large amounts of data, allowing an unauthenticated remote attacker to exhaust server memory. The vulnerability has a CVSS score of 8.2 (High).
The root cause lies in the HPACK decoder within `ember-core` (Hpack.scala). The decoder 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. 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. The decoded header data is held in memory as a single List; with enough concurrent malicious connections (~5 with a 2GB heap in testing), this leads to excessive heap consumption and crashes the server process with an OutOfMemoryError, resulting in denial of service. Confidentiality and integrity are not impacted—only availability.
The attack requires no authentication or special privileges; only the ability to open an HTTP/2 connection to the target server is needed. The Hpack handling code has a configurable max header size parameter, but it does not include indexed headers in that accounting, allowing the attack to bypass the limit. There is not any configuration available in current http4s versions that can be enabled to prevent this attack short of disabling HTTP/2. A fix has been tested locally that threads the `maxHeaderSize` setting from the server builder into the Hpack code, allowing connections to be prematurely terminated once the decoded data size exceeds the configured limit.
DailyCVE Form:
Platform: http4s Ember backend
Version: ≤0.23.34, 1.0.0-M1–M45
Vulnerability: HPACK bomb DoS
Severity: High (CVSS 8.2)
Date: 2026-08-26
Prediction: Patch released 2026-08-26 (0.23.35, 1.0.0-M47)
What Undercode Say:
Analytics show that this vulnerability stems from improper size limit enforcement in the HPACK decoder. The decoder fails to account for indexed header expansion, allowing attackers to bypass the `maxHeaderSize` configuration. With as few as 5 concurrent connections, a 2GB heap can be exhausted, leading to OutOfMemoryError. The attack vector is network-based, requires no authentication, and has low complexity. Memory amplification ratios observed in similar HPACK bomb attacks range from ~4000:1 to ~5700:1. Monitoring for anomalous memory spikes correlated with HTTP/2 connections is recommended as a detection mechanism.
Exploit: (Educational Purposes!)
Proof of Concept for CVE-2026-49975 (similar HPACK bomb technique) Install dependencies pip install -r requirements.txt Basic attack against target python http2_bomb.py example.com Attack against local HTTP/2 test server (no TLS) python http2_bomb.py localhost -p 8080 --no-tls High-intensity attack (50 streams, 50000 references per stream) python http2_bomb.py example.com -s 50 -n 50000 Enable Cookie fragmentation bypass python http2_bomb.py example.com --cookie-fragments 1000 Fast mode (send without holding connection) python http2_bomb.py example.com --no-hold
Note: The above is based on CVE-2026-49975 PoC for educational purposes only.
Protection:
- Immediate: Upgrade to patched releases:
– `http4s-ember-core` 0.23.35 (for 0.23.x line)
– `http4s-ember-core` 1.0.0-M47 (for 1.0.0 milestone line) - Workaround: Disable HTTP/2 support in the Ember backend configuration until the upgrade can be applied
- Defense-in-depth: Monitor server memory usage for anomalous spikes correlated with HTTP/2 connections; place rate limiting or connection limits in front of Ember-based services
Impact:
Denial of Service:
- Affects any http4s server running the Ember backend with HTTP/2 enabled that is exposed to untrusted traffic
- Affects any http4s client running the Ember backend with HTTP/2 enabled that can be directed to an untrusted server
- With enough concurrent connections (~5 with a 2GB heap in testing), leads to `OutOfMemoryError` and service crash
- Confidentiality and integrity are not impacted—only availability
🎯Let’s Practice Exploiting & Learn Patching For Free:
🎓 Live Courses & Certifications:
Join Undercode Academy for Verified Certifications
🚀 Request a Custom Project:
Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

