Description
Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, The shared WebSocket decoder permits unbounded message buffering because defragmentation accumulates fragments without a limit and FrameTranscoder accepts declared lengths up to Int.MaxValue. A remote client that completes a WebSocket handshake against an http4s-blaze-server or http4s-ember-server endpoint can exhaust server memory with oversized frames or fragmented messages. The patched decoder applies a configurable 64 MiB default limit to individual frames and defragmented messages through EmberServerBuilder.withMaxWebSocketMessageSize. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Published: 2026-09-15
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability stems from the shared WebSocket decoder in Http4s, which accepts arbitrarily large frames and accumulates fragments without bounding. A long sequence of fragmented messages causes the server to buffer increasingly large data. As the buffer grows beyond the limit of the JVM heap, memory exhaustion occurs, potentially leading to application crashes or degraded service. The flaw is classified as a denial of service problem (CWE-400) and an out‑of‑bounds resource issue (CWE-770).

Affected Systems

All users of the http4s library older than version 0.23.35 or 1.0.0‑M47 are impacted when running a Blaze or Ember server that accepts WebSocket connections. The issue applies to any http4s‑blaze‑server or http4s‑ember‑server instance that performs a WebSocket handshake before the patch is applied.

Risk and Exploitability

With a CVSS score of 7.5 and an EPSS score of <1%, the vulnerability poses a high‑risk, very low likelihood of exploitation through an unauthenticated network connection. A WebSocket client can initiate a handshake and then transmit maliciously sized frames; the server will allocate memory proportional to the declared length, potentially exhausting system resources. The CVE is not listed in CISA KEV, but due to the unbounded memory allocation, attackers can feasibly exploit this vector from anywhere the endpoint is reachable. The risk is mitigated by patching, but without a patch, the vulnerability remains a practical DoS attack vector.

Generated by OpenCVE AI on September 17, 2026 at 08:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Http4s library to version 0.23.35 or 1.0.0-M47.
  • Configure EmberServerBuilder.withMaxWebSocketMessageSize to enforce a lower maximum message size on the server.
  • Implement application‑level monitoring and automated restart of the process when memory usage unexpectedly spikes to prevent prolonged service disruption.

Generated by OpenCVE AI on September 17, 2026 at 08:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 16 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 15 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
First Time appeared Http4s
Http4s http4s
Vendors & Products Http4s
Http4s http4s

Tue, 15 Sep 2026 19:00:00 +0000

Type Values Removed Values Added
Description Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, The shared WebSocket decoder permits unbounded message buffering because defragmentation accumulates fragments without a limit and FrameTranscoder accepts declared lengths up to Int.MaxValue. A remote client that completes a WebSocket handshake against an http4s-blaze-server or http4s-ember-server endpoint can exhaust server memory with oversized frames or fragmented messages. The patched decoder applies a configurable 64 MiB default limit to individual frames and defragmented messages through EmberServerBuilder.withMaxWebSocketMessageSize. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Title Http4s: WebSocket decoder accepts unbounded message sizes
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-16T18:37:15.546Z

Reserved: 2026-08-03T16:57:50.124Z

Link: CVE-2026-69209

cve-icon Vulnrichment

Updated: 2026-09-16T18:25:04.036Z

cve-icon NVD

Status : Deferred

Published: 2026-09-15T19:17:37.870

Modified: 2026-09-16T20:39:16.610

Link: CVE-2026-69209

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-17T09:00:17Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-770

    Allocation of Resources Without Limits or Throttling