HIGH 7.5

CVE-2026-59724: Socket.IO Engine.IO WebTransport DoS Vulnerability – Patch to 6.6.7

Socket.IO's Engine.IO component versions 6.5.0 through 6.6.6 contain a denial-of-service vulnerability when WebTransport is enabled. An attacker can send a specially crafted session identifier (like '__proto__') that exploits how the server resolves inherited properties of internal objects, triggering a crash that disrupts service for all users. No authentication is required, and exploitation is straightforward from the network. Version 6.6.7 and later address this flaw.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-20
Affected products
1 configuration(s)
Published / Modified
2026-07-08 / 2026-07-13

NVD description (verbatim)

Socket.IO enables bidirectional and low-latency communication for every platform. From 6.5.0 before 6.6.7, Engine.IO servers with WebTransport enabled can resolve a crafted session ID such as __proto__ through an inherited property of the clients object during WebTransport upgrade handling, causing a TypeError and denial of service. This issue is fixed in version 6.6.7.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in Engine.IO's WebTransport upgrade handling logic. During session management, the server resolves client session IDs against the clients object without properly validating the identifier. A crafted session ID referencing prototype pollution vectors (e.g., '__proto__') bypasses the direct property check and resolves through the object's inherited prototype chain. This causes a TypeError when the upgrade handler attempts to interact with the malformed reference, crashing the server process. The issue is scoped to deployments with WebTransport explicitly enabled and affects all 6.5.x versions and 6.6.0–6.6.6.

Business impact

Services relying on Socket.IO for real-time bidirectional communication—such as collaborative platforms, live dashboards, multiplayer applications, and event-driven systems—face availability disruption. An unauthenticated attacker can repeatedly trigger crashes, producing a denial-of-service condition that affects all connected clients. Recovery requires manual restart. Organizations with critical real-time features should prioritize patching to maintain uptime and user trust.

Affected systems

Socket.IO Engine.IO versions 6.5.0 through 6.6.6 with WebTransport transport enabled are vulnerable. Deployments using only HTTP polling or standard WebSocket transports are not affected. Check your Socket.IO installation version and verify whether WebTransport is explicitly enabled in your configuration.

Exploitability

Exploitation is trivial from a network perspective. No authentication, credentials, or special privileges are required. An attacker needs only network-layer access to send a crafted WebTransport upgrade request with a malicious session ID. The attack is a simple HTTP or WebSocket message; no exploitation tools or reverse engineering are necessary. The attack can be scripted and automated, making it practical for opportunistic threat actors scanning for vulnerable instances.

Remediation

Upgrade Engine.IO to version 6.6.7 or later. If immediate patching is infeasible, disable WebTransport transport in your Socket.IO configuration and rely on WebSocket or HTTP polling until patches can be applied. Test the upgrade in a staging environment first, as Socket.IO often ships alongside application-level code that may require revalidation.

Patch guidance

Update Socket.IO to version 6.6.7 or newer. Verify the update by checking the version reported in your package metadata (npm list socket.io-engine or yarn list socket.io-engine) after installation. Test real-time functionality in your staging environment, including WebTransport connections if you re-enable it post-patch. Rolling restarts of your application servers will activate the patched code without a full outage.

Detection guidance

Monitor Engine.IO server logs for TypeErrors occurring during WebTransport upgrade operations, particularly those referencing session resolution or prototype-chain lookups. Network-level detection can flag WebTransport upgrade requests with session IDs containing suspicious patterns like '__proto__', 'constructor', or 'prototype'. Intrusion detection signatures should alert on repeated WebTransport upgrade failures from the same source. Review application performance monitoring (APM) data for sudden spikes in exception rates or process crashes correlated with WebTransport traffic.

Why prioritize this

This vulnerability merits urgent attention due to its network-exploitable nature (no authentication), straightforward attack vector, and direct impact on service availability. The CVSS 7.5 HIGH score reflects the ease of exploitation and severity of denial of service. While not enabling code execution or data compromise, the ability for any unauthenticated attacker to crash a service is operationally damaging and warrants immediate patching in production environments.

Risk score, explained

The CVSS 3.1 score of 7.5 (HIGH) is driven by network-accessible attack vector (AV:N), low attack complexity (AC:L), no privilege requirement (PR:N), no user interaction (UI:N), and high availability impact (A:H). The lack of confidentiality and integrity impact (C:N/I:N) reflects that the flaw is denial-of-service only. The score appropriately signals that while data confidentiality is not at risk, operational continuity is significantly threatened.

Frequently asked questions

Does this vulnerability allow attackers to steal data or execute code?

No. This is strictly a denial-of-service vulnerability. It does not permit code execution, data exfiltration, or authentication bypass. The attack crashes the server process; it does not manipulate application logic or access sensitive information.

Are all Socket.IO deployments vulnerable?

No. Only Engine.IO versions 6.5.0 through 6.6.6 with WebTransport explicitly enabled are vulnerable. Deployments using only WebSocket or HTTP polling transports, or running version 6.6.7 and later, are unaffected.

How quickly can this be exploited in the wild?

Very quickly. The attack requires only a crafted network message and no special tools. Expect opportunistic scanning and exploitation attempts against exposed instances within days of public disclosure. Patching should not be delayed.

What should I do if I cannot patch immediately?

Disable WebTransport in your Socket.IO configuration file and restart your servers. This removes the attack surface while you prepare and test a patch. Verify that your application functions normally with WebSocket or polling-only transports before considering this a permanent workaround.

This analysis is provided for informational purposes and reflects vulnerability details as of the publication date. Security teams should verify patch availability, test upgrades in non-production environments, and consult vendor advisories for definitive guidance. Threat actors may develop exploits; prioritize patching based on your exposure and operational risk tolerance. This vulnerability does not appear on the CISA Known Exploited Vulnerabilities (KEV) catalog as of the analysis date. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).