GHSA-9vwc-pc8p-253q
Http4s Ember HTTP/2 does not enforce SETTINGS_MAX_CONCURRENT_STREAMS
Quick fix
GHSA-9vwc-pc8p-253q — org.http4s:http4s-ember-core_2.12: upgrade to the fixed version with the command below.
# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-ember-core_2.12Details
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.
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-ember-core_2.120Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-ember-core_2.130Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-ember-core_31.0.0-M1Fixed in: 1.0.0-M47# pom.xml: bump <version>1.0.0-M47</version> for org.http4s:http4s-ember-core_2.131.0.0-M1Fixed in: 1.0.0-M47# pom.xml: bump <version>1.0.0-M47</version> for org.http4s:http4s-ember-core_3References
- 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]