Skip to main content

http4s-blaze-server EUVDEUVD-2026-57631

| CVE-2026-73493 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-12 GitHub_M GHSA-7ppr-r889-mcf2
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Complete WebSocket HTTP Upgrade handshake
  2. Delivery
    Send stream of small continuation frames with FIN=0
  3. Exploit
    Blaze WSFrameAggregator buffers each frame indefinitely
  4. Execution
    Per-frame heap overhead compounds total allocation
  5. Persist
    JVM heap exhausted, OutOfMemoryError raised
  6. Impact
    Blaze selector thread terminates, service crashes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must be using BlazeServerBuilder and must expose at least one WebSocket route - no non-default configuration is required beyond this. The attacker must successfully complete a WebSocket handshake (HTTP Upgrade). Where the WebSocket endpoint requires no authentication (PR:N surface), exploitation is fully unauthenticated and remote. Where the handshake requires a valid session or principal, any authenticated client - including low-privilege users - can trigger the condition (PR:L surface). The existing maxWebSocketBufferSize setting does not limit exploitation. Factors limiting real-world impact: the target must be running the Scala/JVM stack with http4s-blaze-server specifically; the attack tears down the entire JVM process rather than a single connection, making it immediately observable; and blaze's EOL status means patching is the only sustainable remediation path.

Impact

The official CVSS 3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) accurately reflects the worst-case scenario where a WebSocket endpoint is publicly reachable without authentication. The GHSA advisory clarifies that where authentication is required, any valid principal can still trigger the crash - so PR:N applies to the unauthenticated surface and PR:L applies to authenticated deployments; this nuance does not change the score but matters for exposure assessment. No KEV listing and no confirmed public exploit code exist at time of analysis, so real-world exploitation is not confirmed. There is no EPSS data provided; given the niche deployment footprint of blaze-based Scala services, opportunistic mass exploitation is unlikely but targeted exploitation against a known blaze deployment would be straightforward. The availability impact is severe - OOM on the blaze selector thread terminates the JVM, taking down the entire service, not just the affected connection. Since blaze is EOL, no further mitigations will emerge outside of the single released patch. The CVSS signals are internally consistent and do not conflict with the description.

Exploit ScenarioDerived

An attacker targeting a publicly exposed blaze-based Scala API performs the WebSocket handshake against any WebSocket endpoint and then sends a stream of small continuation frames - for example, 64-byte frames - that never include the FIN bit, preventing the server from delivering a complete message. Because each frame is buffered and also incurs per-object JVM heap overhead, the server heap grows monotonically; depending on heap configuration, a few thousand to tens of thousands of such frames suffice to trigger OutOfMemoryError on the selector thread and crash the JVM process. No exploit code has been publicly identified, but the technique requires only standard WebSocket framing knowledge.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 12, 2026

Unbounded WebSocket fragment aggregation in http4s-blaze-server allows any client that completes a WebSocket handshake to exhaust the server JVM heap and trigger an OutOfMemoryError, crashing the blaze selector thread. Any Scala application built on BlazeServerBuilder that exposes WebSocket routes is affected without any non-default configuration - the existing maxWebSocketBufferSize setting bounds only individual frames, not the aggregate. No public exploit has been identified at time of analysis, but exploitation is trivially low-complexity: a single connection sending a stream of continuation frames that never assert FIN is sufficient.

RemediationAI

Upgrade to http4s-blaze-server version 0.23.18 (for the stable series) or 1.0.0-M42 (for the milestone series); release artifacts are available at https://github.com/http4s/blaze/releases/tag/v0.23.18 and https://github.com/http4s/blaze/releases/tag/v1.0.0-M42. The fix introduces a 4 MiB default aggregate message cap; applications with legitimate large WebSocket payloads may need to configure maxBufferSize explicitly via BlazeServerBuilder to avoid premature Close(1009) responses. If upgrading immediately is not possible, the GHSA advisory recommends terminating or rate-limiting WebSocket traffic at a fronting reverse proxy or load balancer that enforces both per-frame and aggregate message-size limits - this is effective but requires the proxy to inspect WebSocket framing, not all proxies do this by default. Alternatively, disable WebSocket routes entirely if they are not required by the application. Note that maxWebSocketBufferSize in blaze configuration is NOT a mitigation and does not bound aggregate size. Given that blaze is EOL upstream, migration to a maintained http4s backend (such as Ember) is the long-term recommended path.

Affected VersionsENISA

blaze 1.0.0-M1, < 1.0.0-M42
blaze < 0.23.18

Affected Packages

maven org.http4s:http4s-blaze-server_2.12 fix: 0.23.18
maven org.http4s:http4s-blaze-server_2.13 fix: 0.23.18, 1.0.0-M42
maven org.http4s:http4s-blaze-server_3 fix: 1.0.0-M42
euvd blaze fix: 0.23.18
euvd blaze_1_0_0_m1 fix: 1.0.0-M42

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 5 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

http4s is a Scala HTTP library built on the Typelevel ecosystem; its blaze backend (org.http4s:http4s-blaze-server) implements a pipeline-based I/O model using a WSFrameAggregator mid-stage that reassembles fragmented WebSocket messages per RFC 6455. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): WSFrameAggregator accumulated continuation frames into an unbounded buffer with no cap on total payload bytes or fragment count. Because each fragment also carries JVM per-object heap overhead (frame object, ByteVector wrapper, queue node), even a modest byte volume of many small fragments can exhaust memory faster than payload bytes alone suggest. The fix introduces a maxMessageSize constructor parameter (default 4 MiB) to WSFrameAggregator and charges both payload bytes and a per-fragment overhead of 64 bytes against the same budget, then maps overflow to a WebSocket Close(1009) frame. The CPE string cpe:2.3:a:http4s:blaze:*:*:*:*:*:*:*:* covers all blaze versions. Notably, blaze is declared EOL upstream, meaning no ongoing maintenance will follow this fix.

Know when Http4S gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Network-reachable WebSocket endpoint, no complexity or privileges needed for unauthenticated surfaces, and sole impact is complete availability loss via JVM crash.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Aug 12, 2026 - 22:03 EUVD
CVE Published
Aug 12, 2026 - 21:08 cve.org
HIGH 7.5

DescriptionCVE.org

Http4s (http4s-blaze-server) is a minimal, idiomatic Scala interface for HTTP services. Prior to 0.23.18 and 1.0.0-M42, http4s-blaze-server aggregates fragments of an incoming WebSocket message with no limit on total size or fragment count. A client that completes a WebSocket handshake can send an unterminated fragmented message and drive unbounded heap growth in the server JVM, resulting in denial of service through OutOfMemoryError. Any http4s application serving WebSocket routes over BlazeServerBuilder is affected, no non-default configuration is required, and maxWebSocketBufferSize does not bound the aggregate because it bounds only individual frames. A single connection sending continuation frames that never set FIN forces the server to buffer every fragment until the heap is exhausted, terminating the JVM with OutOfMemoryError on the blaze selector thread. Small fragments amplify the cost through per-frame object overhead, so a modest volume of wire bytes is sufficient. This issue is fixed in versions 0.23.18 and 1.0.0-M42.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 8 maven packages depend on org.http4s:http4s-blaze-server_2.12 (3 direct, 5 indirect)

Ecosystem-wide dependent count for version 0.23.18.

Executive ViewAI

Why It Matters

http4s-blaze-server's WebSocket implementation contains a denial-of-service vulnerability that allows attackers to crash the server by exhausting JVM memory, affecting all Scala applications using BlazeServerBuilder with WebSocket routes. No patch is currently available, placing critical services at immediate risk of outage from trivially-exploitable attacks.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: deploy connection rate limiting and per-client connection limits at reverse proxy layer; enforce aggressive idle timeout on WebSocket connections; enable continuous JVM heap monitoring with automated alerts at 75% utilization and failover triggers; configure reverse proxy to limit WebSocket frame size where supported; isolate WebSocket endpoints to dedicated application instances to limit blast radius of memory exhaustion events; document and practice manual service restart procedures for rapid recovery.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche Scala/Typelevel ecosystem library, EOL upstream
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Http4S

View all
CVE-2026-61741 CRITICAL POC
9.3 Sep 24

XML External Entity (XXE) injection in http4s-scala-xml's EntityDecoder for scala.xml.Elem (all versions before 0.24.1 a

CVE-2026-69215 MEDIUM POC
6.8 Sep 15

Http4s client applications that keep a cookie jar can leak stored cookies — including session and authentication cookies

CVE-2023-22465 MEDIUM POC
5.3 Jan 04

Http4s is a Scala interface for HTTP services. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploita

CVE-2026-69204 CRITICAL
9.2 Sep 15

Request smuggling in the http4s Ember HTTP/1.1 parser lets an unauthenticated, remote attacker bypass front-end access c

CVE-2021-39185 CRITICAL
9.1 Sep 01

Http4s is a minimal, idiomatic Scala interface for HTTP services. Rated critical severity (CVSS 9.1), this vulnerability

CVE-2026-69217 HIGH
8.7 Sep 15

HTTP request smuggling in http4s Ember (all releases prior to 0.23.35 and 1.0.0-M47) lets an unauthenticated remote atta

CVE-2026-69205 HIGH
8.7 Sep 15

Let me synthesize. CVE-2026-69205: http4s Ember HTTP parser request smuggling via Transfer-Encoding header case-sensiti

CVE-2021-41084 MEDIUM POC
4.7 Sep 21

http4s is an open source scala interface for HTTP. Rated medium severity (CVSS 4.7), this vulnerability is remotely expl

CVE-2026-69210 HIGH
7.5 Sep 15

A crafted WebSocket frame can pin a worker thread and exhaust memory in the http4s Scala HTTP library, causing denial of

CVE-2026-69203 HIGH
7.5 Sep 15

Heap exhaustion in the http4s Ember backend (0.23.x before 0.23.35 and 1.0.0 milestones before 1.0.0-M47) allows a singl

CVE-2026-69208 HIGH
7.5 Sep 15

Heap-exhaustion denial of service in the http4s DigestAuth server middleware: an inverted stale-nonce comparison in Nonc

CVE-2021-21294 HIGH
7.5 Feb 02

Http4s (http4s-blaze-server) is a minimal, idiomatic Scala interface for HTTP services. Rated high severity (CVSS 7.5),

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy