CVE-2026-69213: Http4s Ember HTTP/2 has an unbounded outbound frame queue
Ember’s HTTP/2 connection serializes all outgoing frames through a single unbounded queue drained by one writer fiber (writeLoop). When the write side stalls, any frames the connection keeps producing accumulate in that queue without limit. The peer can drive this cheaply because the connection emits a control frame in response to inbound frames it does not flow-control: one PING ACK per PING, one SETTINGS ACK per SETTINGS, and a WINDOW_UPDATE per inbound DATA. A single unauthenticated connection can therefore exhaust heap and OOM the process.
This affects an ember server (malicious client) and an ember client (malicious/compromised server that floods the client and stops reading its ACKs).
References
- github.com/advisories/GHSA-8f3q-3jmv-7prw
- github.com/http4s/http4s/commit/13fe24d6440bde2f1eb70121486cf59c278e6bae
- github.com/http4s/http4s/releases/tag/v0.23.35
- github.com/http4s/http4s/releases/tag/v1.0.0-M47
- github.com/http4s/http4s/security/advisories/GHSA-8f3q-3jmv-7prw
- nvd.nist.gov/vuln/detail/CVE-2026-69213
Code Behaviors & Features
Detect and mitigate CVE-2026-69213 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →