Skip to main content

Socket.IO Cluster Engine EUVDEUVD-2026-88981

| CVE-2026-102600 HIGH
Improper Input Validation (CWE-20)
2026-09-29 GitHub_M GHSA-wfpm-5gcm-94cg
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
    Reach Socket.IO endpoint using cluster-engine
  2. Delivery
    Send session ID '__proto__' or 'constructor'
  3. Exploit
    Lookup resolves via prototype chain
  4. Execution
    Unhandled state crashes Node.js process
  5. Impact
    Denial of service for all clients

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the target application uses the @socket.io/cluster-engine package (versions prior to 0.1.1) in a clustered/multi-node deployment - applications using plain Socket.IO without cluster-engine are explicitly NOT affected. Given this configuration, an unauthenticated remote attacker simply needs network reachability to the Socket.IO endpoint and supplies a crafted session ID whose value collides with an inherited Object property name (e.g. __proto__ or constructor). No authentication, credentials, or user interaction are required (PR:N/UI:N), and default configurations of cluster-engine are vulnerable; the primary limiting factor is the deployment-specific dependency on cluster-engine rather than any special runtime setting.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) describes a remotely reachable, unauthenticated, low-complexity flaw with pure availability impact - no confidentiality or integrity loss. This is a classic prototype-chain lookup bug (attacker-controlled session IDs like __proto__ or constructor resolve to inherited Object.prototype members rather than a real client), causing an unhandled condition that crashes the Node.js process. The fix confirms the mechanism: a safeGet() helper gating all this.clients[sid] lookups behind Object.prototype.hasOwnProperty.call(). No EPSS score, KEV entry, or public POC was provided, so there is no evidence of active exploitation; the 7.5 reflects the ease and remoteness of triggering a crash, not code execution. This is a genuine, easily-triggerable DoS but a bounded one - a single-vector availability issue, not an RCE. The critical scoping caveat is that ONLY applications using @socket.io/cluster-engine in clustered deployments are affected; the vendor explicitly states non-cluster-engine users are not impacted, which sharply narrows the real-world exposure below what a bare '7.5 / Socket.IO' reading would imply.

Exploit ScenarioDerived

An attacker connects to an internet-facing Socket.IO service that runs @socket.io/cluster-engine and supplies a session ID of __proto__ or constructor. The lookup resolves through the prototype chain to an inherited object instead of a real client, triggering an unhandled state that crashes the Node.js worker and denies service to all users. No authentication or user interaction is required; no public exploit code was identified at time of analysis, though the mechanism is trivial to reproduce from the advisory and commit diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC 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 – Sep 29, 2026

Denial of service in Socket.IO Cluster Engine versions before 0.1.1 allows unauthenticated remote attackers to crash Node.js processes in clustered Socket.IO deployments by supplying crafted session IDs such as __proto__ or constructor. Only applications using @socket.io/cluster-engine are affected, and the flaw requires network reachability to the Socket.IO endpoint but no credentials or user interaction; the CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H with base 7.5. No public exploit identified at time of analysis, and the issue is fixed in 0.1.1.

RemediationAI

Upgrade @socket.io/cluster-engine to version 0.1.1 or later; the vendor release tag @socket.io/cluster-engine@0.1.1 and commit 830e3642ebb8dc3784eb749b0a004fe2b932b429 contain the fix, with advisory GHSA-wfpm-5gcm-94cg. Vendor-released patch: 0.1.1. If immediate upgrade is not possible, remove or disable cluster-engine from the deployment and run Socket.IO in a single-process configuration, accepting loss of cluster or multi-node scaling. Alternatively, restrict network access to the Socket.IO endpoint to trusted clients or a controlled proxy, but this does not eliminate risk for allowed clients and may not block crafted session IDs. Because the flaw is triggered by attacker-controlled session ID values that collide with inherited object property names such as __proto__ or constructor, edge filtering or WAF rules rejecting such reserved property names in Socket.IO messages may help as a temporary compensating control, with the trade-off of possible false positives and incomplete coverage.

Affected VersionsENISA

cluster-engine < 0.1.1
socket.io < 0.1.1

Affected Packages

npm @socket.io/cluster-engine fix: 0.1.1
euvd cluster_engine fix: 0.1.1
euvd socket_io fix: 0.1.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in npm, euvd

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

Technical ContextAI · show details

The issue is a CWE-20 improper input validation flaw in @socket.io/cluster-engine's clustered session lookup. The engine maintains a clients record keyed by Socket.IO session IDs; before 0.1.1 it performed bracket lookups such as this.clients[sid] without verifying own-property ownership. Because JavaScript objects inherit from Object.prototype, attacker-controlled IDs like __proto__ or constructor can resolve to inherited properties instead of undefined or a real client, and subsequent handling causes an unhandled exception that crashes the Node.js worker or process. The upstream commit 830e3642ebb8dc3784eb749b0a004fe2b932b429 adds a safeGet helper using Object.prototype.hasOwnProperty.call(obj, key) before returning the value and applies it at the affected lookup sites. CPE data identifies socketio:socket.io and @socket.io:cluster-engine, but the vulnerable component is the cluster-engine package before 0.1.1; plain Socket.IO without this package is not affected. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, reflecting unauthenticated remote availability-only impact.

Know when Node.js 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

Remote, unauthenticated, low-complexity crash via crafted session ID with only availability impact; no confidentiality or integrity loss, so C:N/I:N/A:H.

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
Sep 29, 2026 - 16:02 EUVD
CVE Published
Sep 29, 2026 - 15:23 cve.org
HIGH 7.5

DescriptionCVE.org

Socket.IO enables bidirectional and low-latency communication for every platform. Prior to 0.1.1, @socket.io/cluster-engine uses inherited object properties when looking up attacker-controlled session IDs in clustered deployments. Special property names such as __proto__ or constructor can resolve through the object prototype chain instead of identifying an actual connected client, causing the Node.js process to crash and resulting in denial of service. Applications that do not use @socket.io/cluster-engine are not affected. This issue is fixed in version 0.1.1.

Technical POC Analysis

No runnable PoC and no patch diff are present in the supplied evidence.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Organizations running clustered Socket.IO deployments built on @socket.io/cluster-engine versions before 0.1.1 face an unauthenticated denial-of-service condition that can crash Node.js worker processes and take real-time messaging, presence, and event-delivery features offline. The attack is unauthenticated and requires only network reachability to the Socket.IO endpoint, so any externally exposed or broadly reachable service using this component can be disrupted without credentials or user interaction. Leadership should care because the primary risk is service availability for customer-facing real-time functionality, and remediation depends on a third-party dependency upgrade inside application code rather than a perimeter or infrastructure fix.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
Socket.IO is widely used, but cluster-engine add-on is a smaller clustered-deployment subset
Threat Intel
1
1 sources
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 Yes
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

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: +20
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.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

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