GitHub Advisoryadvisory · Maven
GHSA-9vwc-pc8p-253q Http4s Ember HTTP/2 does not enforce SETTINGS_MAX_CONCURRENT_STREAMS
HIGH
Official page ↗
- Aliases
- CVE-2026-69203
- Ecosystem
- Maven
- Packages
- org.http4s:http4s-ember-core_2.12, org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_3
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-400, CWE-770
- Reviewed
- 2026-09-15
Affected packages
• Maven org.http4s:http4s-ember-core_2.12: < 0.23.35 → fixed in 0.23.35
• Maven org.http4s:http4s-ember-core_2.13: < 0.23.35 → fixed in 0.23.35
• Maven org.http4s:http4s-ember-core_3: < 0.23.35 → fixed in 0.23.35
• Maven org.http4s:http4s-ember-core_2.13: >= 1.0.0-M1, < 1.0.0-M47 → fixed in 1.0.0-M47
• Maven org.http4s:http4s-ember-core_3: >= 1.0.0-M1, < 1.0.0-M47 → fixed in 1.0.0-M47
Description
An ember server with HTTP/2 enabled (`.withHttp2`) does not enforce `SETTINGS_MAX_CONCURRENT_STREAMS` on streams opened by the peer. A single unauthenticated connection can open an unbounded number of concurrent streams, each of which allocates per-stream server state that is never released, exhausting the heap.
Impact
Unauthenticated remote denial of service (memory exhaustion) against any Ember server built `.withHttp2`. This is the resource-exhaustion class of the HTTP/2 "Rapid Reset" family (CVE-2023-44487).
The same unchecked allocation path is reachable on the client via server-initiated `PUSH_PROMISE` frames, so a malicious or compromised server can exhaust an ember-client's heap the same way.
Preconditions
• Server: with `.withHttp2` enabled.
• Client: makes HTTP/2 requests to malicious or compromised sites. `enablePush` is not enforced.
Workarounds
• Disable HTTP/2 on `EmberServerBuilder` or `EmberClientBuilder` (default)
• Client only: avoid HTTP/2 to untrusted servers until patched.
Related
Alias · CVE (1)
- CVE-2026-69203 Http4s is a Scala interface for HTTP services. vulnerability
References
- https://github.com/http4s/http4s/security/advisories/GHSA-9vwc-pc8p-253q web
- https://github.com/http4s/http4s/commit/4983de1f93f2caaa3b9de310cf6a9db32c50d66e web
- https://github.com/http4s/http4s package
- https://github.com/http4s/http4s/releases/tag/v0.23.35 web
- https://github.com/http4s/http4s/releases/tag/v1.0.0-M47 web