Skip to main content

ws EUVDEUVD-2026-44729

| CVE-2026-62389 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-07-15 VulnCheck GHSA-73jw-fp74-p77x
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Open WebSocket connection to ws server
  2. Delivery
    Send text frame with FIN=0
  3. Exploit
    Stream endless continuation fragments
  4. Execution
    Buffers accumulate unbounded in receiver
  5. Impact
    Node heap exhausted, process OOM-killed

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

Exploitation requires only that the target run a ws server (version before 8.21.1) that accepts WebSocket connections and permits fragmented data messages - the default configuration, since the pre-patch defaults for maxFragments/maxBufferedChunks were high enough to allow substantial accumulation. The concrete trigger is a data message begun with a text frame carrying FIN=0 followed by continuation frames (including empty fragments) that never complete the sequence, per the description. No authentication, no user interaction, and no special platform are needed (PR:N/UI:N/AV:N). Limiting factors: the target endpoint must be network-reachable by the attacker, and deployments that already set a low custom maxFragments, terminate incomplete/idle WebSocket sessions at a proxy, or restrict WebSocket access to authenticated internal users substantially reduce exposure.

Impact

This is a genuine availability risk but strictly a denial-of-service issue - the supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) with VA:H and VC/VI:N confirms a network-reachable, no-authentication, low-complexity attack that impacts only availability, consistent with the CWE-770 classification. The 8.7 CVSS 4.0 base is High, driven entirely by the high availability impact plus the trivial network preconditions. No EPSS score and no KEV listing were provided, and there is no indication of a public proof-of-concept, so despite the low exploitation barrier this should be treated as a plausible-but-not-yet-observed threat rather than an actively exploited one; the absence of EPSS data means widespread-exploitation probability cannot be quantified from the input. There is no confidentiality or integrity exposure, so this is a resource-availability priority - high value for internet-facing WebSocket services, lower urgency for internal or authenticated-only endpoints. The signals are internally consistent (network DoS, no privilege needed), so there is no CVSS-versus-description conflict to flag.

Exploit ScenarioDerived

An attacker opens a WebSocket connection to an internet-facing Node.js service running a pre-8.21.1 ws server, sends a text frame with FIN=0, and then streams a long series of continuation frames (including empty ones) without ever sending a final frame. Because each fragment is buffered as a separate Buffer and the count guard never trips, the server's heap grows until the Node process is killed by the out-of-memory handler; repeating this across a few connections amplifies the effect. No authentication or user interaction is required, and while no public POC is identified, the attack is straightforward to script against a raw WebSocket client.

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

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

Alert me

AnalysisAIv1 – Jul 15, 2026

Denial of service in the ws WebSocket library for Node.js (versions before 8.21.1) allows remote unauthenticated attackers to exhaust server heap memory by opening fragmented messages that are never completed. Because the fragment guard in lib/receiver.js only fires when the fragment count reaches maxFragments, an attacker can stream continuation frames (starting with a text frame carrying FIN=0) indefinitely, and each fragment is retained as a separate Buffer with per-object overhead until the process runs out of memory. No public exploit has been identified at time of analysis, and the flaw was disclosed by VulnCheck with a vendor patch already available.

RemediationAI

Vendor-released patch: upgrade ws to version 8.21.1 or later, which counts empty fragments toward the limit and reduces the default values of the maxBufferedChunks and maxFragments options (fix commit f197ac65140920bdcecdab74bfc69c2d7858e55d; release notes at https://github.com/websockets/ws/releases/tag/8.21.1). Applications that pull ws transitively should rebuild their dependency tree (for example via npm update or a lockfile bump) to ensure the resolved ws version is 8.21.1+. If an immediate upgrade is not possible, explicitly set a conservative maxFragments (and maxBufferedChunks) value when constructing the WebSocket server so incomplete fragmented messages are rejected early - the trade-off is that legitimately large legitimately-fragmented messages may be cut off, so tune the limit to your real message sizes. As additional compensating controls, place WebSocket endpoints behind a reverse proxy or gateway that enforces per-connection message-size and idle timeouts and cap concurrent connections per client IP; the side effect is potential disruption to long-lived or high-throughput WebSocket clients. Reference the VulnCheck advisory (https://www.vulncheck.com/advisories/ws-default-maxfragments-allows-memory-exhaustion-dos) for confirmation.

Affected VersionsENISA

ws 0 <8.21.1

Affected Packages

euvd ws fix: 8.21.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

ws is the de facto WebSocket client/server implementation for Node.js, used directly and as a transitive dependency of frameworks such as Socket.IO. The vulnerability lives in the receiver state machine (lib/receiver.js) that reassembles fragmented WebSocket data messages, a mechanism defined by RFC 6455 in which a message can be split across an initial frame with FIN=0 plus one or more continuation frames. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the limit check for buffered fragments was only evaluated when the accumulated count actually reached the maxFragments threshold, and empty fragments were not counted, so a peer that sends many small or empty incomplete fragments without ever setting FIN=1 accumulates unbounded per-fragment Buffer objects. Each stored Buffer carries fixed allocation overhead, so the effective memory cost is amplified well beyond the raw payload bytes, turning modest network input into large heap growth.

Know when Ws 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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable, no authentication or interaction, and trivial to trigger (AV:N/AC:L/PR:N/UI:N); impact is availability-only heap exhaustion, so C:N/I:N/A:H with unchanged scope.

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 (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ws before 8.21.1 contains a memory exhaustion vulnerability in lib/receiver.js where the fragment guard only triggers when fragment count reaches maxFragments, allowing attackers to exhaust memory by sending incomplete fragmented WebSocket messages. Attackers can send a text frame with FIN=0 followed by continuation frames without completing the sequence, causing each fragment to be stored as a separate Buffer object with significant overhead, enabling denial of service through heap exhaustion.

Executive ViewAI

Why It Matters

The ws WebSocket library for Node.js (versions before 8.21.1) has a critical availability risk: unauthenticated attackers can remotely trigger memory exhaustion and crash affected applications. This directly impacts application reliability and user access for any service using this library. Immediate patching is essential to prevent service disruptions.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Ubiquitous
ws is the dominant Node.js WebSocket library, an enormous npm dependency
Data Quality
7 sources
Confidence: High

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.4%
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

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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.

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