Skip to content

Socket.IO: Engine.IO Polling Transport Connection Exhaustion

High severity GitHub Reviewed Published Jun 25, 2026 in socketio/socket.io • Updated Jul 20, 2026

Package

npm engine.io (npm)

Affected versions

>= 4.1.0, < 6.6.7

Patched versions

6.6.7

Description

Impact

An unauthenticated remote attacker can cause a denial of service in affected versions of engine.io by opening Engine.IO polling sessions and sending an invalid binary POST request with:

Content-Type: application/octet-stream

against an Engine.IO protocol v4 polling transport.

In the vulnerable code path, the server reports a transport error but does not properly close the HTTP response associated with the malformed request. As a result, the underlying HTTP connection may remain open, consuming one server-side socket/resource per crafted request.

An attacker can repeat this with many sessions to exhaust available HTTP connections, sockets, file descriptors, or related server resources, potentially preventing legitimate clients from connecting.

Patches

The issue was fixed in:

  • engine.io 6.6.7

The fix ensures that invalid binary polling POST requests are explicitly rejected with an HTTP response and closed properly.

Users should upgrade to:

npm install engine.io@^6.6.7

or a later fixed version.

If using Socket.IO through the monorepo/packages, update to a Socket.IO release that depends on a fixed engine.io version.

Workarounds

If upgrading immediately is not possible, possible mitigations include:

  • Block or reject polling POST requests with Content-Type: application/octet-stream for Engine.IO protocol v4 at a reverse proxy, load balancer, WAF, or application middleware.
  • Disable HTTP long-polling if your deployment can use WebSocket-only transport.
  • Enforce strict request/connection timeouts at the HTTP server, reverse proxy, or load balancer.
  • Apply per-IP rate limits and connection limits for Engine.IO endpoints.
  • Restrict access to the Socket.IO/Engine.IO endpoint where feasible.

Example Socket.IO configuration to disable polling, if compatible with your clients:

const io = new Server(httpServer, {
  transports: ["websocket"],
});

References

References

@darrachequesne darrachequesne published to socketio/socket.io Jun 25, 2026
Published by the National Vulnerability Database Jul 8, 2026
Published to the GitHub Advisory Database Jul 20, 2026
Reviewed Jul 20, 2026
Last updated Jul 20, 2026

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(29th percentile)

Weaknesses

Improper Resource Shutdown or Release

The product does not release or incorrectly releases a resource before it is made available for re-use. Learn more on MITRE.

CVE ID

CVE-2026-59725

GHSA ID

GHSA-r635-g3xr-vw7x

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.