Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Maven
Not in CISA KEV
HIGH severity

CVE-2026-69203

HIGHFix: http4s/http4s@4983de1

CVE-2026-69203 is a high-severity (CVSS 7.5) Uncontrolled Resource Consumption vulnerability in org.http4s:http4s-ember-core_2.12. O3 Security confirms whether CVE-2026-69203 is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.

Http4s Ember HTTP/2 does not enforce SETTINGS_MAX_CONCURRENT_STREAMS

Published
Sep 15, 2026
Updated
Sep 15, 2026
Affected
5 pkgs
Patched
5 / 5
Exploits
None indexed
Exploitation data as of Sep 15, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-69203.

Real-World Exposure

5 pkgs affected
org.http4s:http4s-ember-core_2.12org.http4s:http4s-ember-core_2.13org.http4s:http4s-ember-core_3org.http4s:http4s-ember-core_2.13org.http4s:http4s-ember-core_3

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.

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.

Affected Packages

5 total 5 fixed
EcosystemPackageVulnerable rangeFix
Mavenorg.http4s:http4s-ember-core_2.12all versions0.23.35
Mavenorg.http4s:http4s-ember-core_2.13all versions0.23.35
Mavenorg.http4s:http4s-ember-core_3all versions0.23.35
Mavenorg.http4s:http4s-ember-core_2.131.0.0-M1&&< 1.0.0-M471.0.0-M47
Mavenorg.http4s:http4s-ember-core_31.0.0-M1&&< 1.0.0-M471.0.0-M47

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.http4s:http4s-ember-core_2.12. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Fix

    Update org.http4s:http4s-ember-core_2.12 to 0.23.35 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-69203 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether CVE-2026-69203 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to CVE-2026-69203. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

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-i
O3 Security · Impact-Aware SCA

Is CVE-2026-69203 in your dependencies?

O3 detects CVE-2026-69203 across Maven dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.

CVE-2026-69203: DoS (High 7.5) | O3 Security