
PEACH
Un cadre d’isolation des locataires
CVE-2026-102599 is a denial-of-service vulnerability in the engine.io npm package (used by Socket.IO) caused by a protocol revision mismatch during WebSocket transport upgrades. The Engine.IO protocol version is negotiated at handshake and stored on the session, but upgrade requests were not validated against the session's negotiated version, allowing a crafted heartbeat packet to trigger an uncaught exception and crash the Node.js process. Affected versions are engine.io >= 6.6.0, < 6.6.10; the issue was fixed in engine.io@6.6.10. It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory, Socket.IO Advisory).
The root cause is classified as CWE-248 (Uncaught Exception): the server failed to verify that the EIO query parameter in a WebSocket upgrade request matched the protocol revision established during the initial handshake. Each transport independently recomputed its protocol revision from the request query, while the session stored its own pinned revision. An attacker could establish a legitimate Engine.IO v4 session and then send a WebSocket upgrade request with a mismatched or omitted EIO parameter; an omitted EIO parameter defaults to protocol v3 on the affected code path, even when v3 compatibility is explicitly disabled. This causes the server to attach a transport using an incompatible parser and heartbeat mode, and a subsequently crafted heartbeat packet can trigger an uncaught exception, terminating the Node.js process. The fix (commit 86db1fc) introduces a computeProtocolRevision() helper and rejects upgrade requests where the derived protocol does not match the session's pinned protocol (Socket.IO Advisory, Fix Commit).
Successful exploitation results in a complete denial of service through an unhandled Node.js process crash, making the affected Socket.IO/Engine.IO server entirely unavailable to legitimate clients. There is no confidentiality or integrity impact — the vulnerability is limited to availability. Because a single unauthenticated request sequence can crash the server process, repeated exploitation can prevent service recovery without process supervision or automatic restart mechanisms in place (GitHub Advisory).
No authentication, privileges, or user interaction are required to exploit this vulnerability, and attack complexity is low, making it trivially exploitable by any network-accessible attacker. No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the advisory publication date. The CVE status is listed as "Reserved" and no EPSS score or CISA KEV catalog entry is currently available. The vulnerability was reported by researcher sondt99 (Socket.IO Advisory, GitHub Advisory).
engine.io >= 6.6.0, < 6.6.10 and transport upgrades enabled (the default configuration).EIO=4 to negotiate an Engine.IO v4 session and obtain a session ID (sid):GET /engine.io/?transport=polling&EIO=4sid but with a mismatched or omitted EIO parameter (omitting it defaults to v3):ws://target/engine.io/?transport=websocket&sid=<SESSION_ID>(Note: EIO parameter is omitted or set to 3 while the session was established with EIO=4.)/engine.io/ endpoints with a sid parameter but a missing or mismatched EIO query parameter (e.g., session established with EIO=4 but upgrade sent without EIO or with EIO=3).connection_error events with code: 3 (Bad Request) and context.name: PROTOCOL_MISMATCH; uncaught exception stack traces in Node.js stdout/stderr immediately before process exit.The primary fix is to upgrade engine.io to version 6.6.10 or later; Socket.IO users should update to a Socket.IO release that bundles the patched Engine.IO version (Release Notes). If immediate upgrade is not possible, two workarounds are available: (1) disable transport upgrades entirely with allowUpgrades: false, or (2) restrict to a single transport such as WebSocket-only (transports: ["websocket"]) — both avoid the vulnerable upgrade code path but may affect client compatibility. As an additional proxy-layer mitigation, deployments can reject Engine.IO requests for an existing sid when the EIO parameter is missing or does not match the session's negotiated protocol (Socket.IO Advisory).
The advisory was published by Socket.IO maintainer darrachequesne on September 14, 2026, and added to the GitHub Advisory Database on September 29, 2026. The release of engine.io@6.6.10 received positive reactions from the community on GitHub. No significant broader media coverage or notable independent researcher commentary has been identified beyond the official advisory (GitHub Advisory, Release Notes).
Source: Ce rapport a été généré à l’aide de l’IA
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité pour évaluer votre niveau de risque et identifier les failles dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."