Summary
Socket.IO: Prototype Pollution via Unsafe Client Session Lookup
Advisory details
Impact
This is a prototype pollution / improper client lookup vulnerability in @socket.io/cluster-engine.
Servers using @socket.io/cluster-engine may be impacted when attacker-controlled session IDs are processed in clustered deployments. A malicious client could use special property names such as __proto__, constructor, or other inherited object keys as a session identifier, causing the server to read properties from the object prototype chain instead of only real connected clients.
The impact is denial of service through process crash.
Applications not using @socket.io/cluster-engine are not affected by this specific issue.
Affected versions:
@socket.io/cluster-engine@0.1.0
Patches
The issue was fixed in:
@socket.io/cluster-engine@0.1.1
Workarounds
If upgrading immediately is not possible, users can reduce exposure by:
- Rejecting or sanitizing suspicious session IDs before they reach the cluster engine.
- Running the cluster engine behind trusted infrastructure that prevents arbitrary clients from crafting raw Engine.IO session-related requests.
These workarounds are defense-in-depth only. Upgrading to a patched version is recommended.
References
- https://github.com/advisories/GHSA-wfpm-5gcm-94cg
- https://github.com/socketio/socket.io/security/advisories/GHSA-wfpm-5gcm-94cg
- https://nvd.nist.gov/vuln/detail/CVE-2026-102600
- https://github.com/socketio/socket.io/commit/830e3642ebb8dc3784eb749b0a004fe2b932b429
- https://github.com/socketio/socket.io/releases/tag/@socket.io/cluster-engine@0.1.1
Related vulnerabilities
All Supply chain →- CRITICALCVE-2026-96620
Claude Agent SDK: Argument Injection via resume Option Allows Arbitrary Command Execution
- MEDIUMCVE-2026-100347
kin-openapi: Unauthenticated panic (DoS) in openapi3filter legacy router via non-canonical/unsupported HTTP method on a static path
- HIGHCVE-2026-84316
Nginx UI: nginx config directive denylist (ValidateConfigFile) is bypassable via same-line ";" separation → authenticated directive injection (RCE on the official image)
- HIGHCVE-2026-84317
Nginx UI: MCP nginx_config_add skips config directive validation → authenticated nginx directive injection (RCE on the official image)
- MEDIUMCVE-2026-48484
pyLoad: Lack of Input Size Validation Leads to Denial of Service (DoS) and Process Termination
- CRITICALCVE-2026-107726
Hazelcast allows arbitrary member memory access by low-privileged client