{"id":"CVE-2026-59725","aliases":["CLSA-2026-1792605466","CLSA-2026-1792617714","EUVD-2026-42313","GHSA-r635-g3xr-vw7x","RHSA-2026:37577","RHSA-2026:42986","ROOT-APP-NPM-CVE-2026-59725"],"status":"published","title":"Socket.IO: Engine.IO Polling Transport Connection Exhaustion","description":"Socket.IO enables bidirectional and low-latency communication for every platform. From 4.1.0 before 6.6.7, Engine.IO protocol v4 polling transport does not properly close the HTTP response for invalid binary POST requests with Content-Type: application/octet-stream, allowing an unauthenticated attacker to exhaust server-side connections and sockets. This issue is fixed in version 6.6.7.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00636,"percentile":0.51013,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-404"],"published":"2026-07-08T15:37:52Z","modified":"2026-10-28T02:31:12Z","fixes":[{"ecosystem":"npm","package":"engine.io","fixed_in":["6.6.7"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"engine.io","fixed_in":["6.5.5-tuxcare.2"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0","fixed_in":["0:8.0.129-2.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0-source-built-artifacts","fixed_in":["0:8.0.129-2.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-dbg-8.0","fixed_in":["0:8.0.129-2.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"dotnet-templates-8.0","fixed_in":["0:8.0.129-2.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"dotnet8.0","fixed_in":["0:8.0.129-2.hum1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"engine.io","fixed_in":["6.5.4-aikido.2","6.5.4-aikido.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/engine.io","fixed_in":["6.5.4-root.io.2","6.5.4-root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"engine.io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.0"},{"fixed":"6.6.7"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"engine.io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.2-tuxcare.0"},{"fixed":"4.1.2-tuxcare.1"}]}],"versions":["4.1.2"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:npm","package":"engine.io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.5.5-tuxcare.0"},{"fixed":"6.5.5-tuxcare.2"}]}],"versions":["6.5.5","6.5.5-tuxcare.1"]},{"source":"osv","ecosystem":"npm","package":"engine.io","ranges":[{"type":"SEMVER","events":[{"introduced":"4.1.0"},{"fixed":"6.6.7"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.128-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0-source-built-artifacts","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.128-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-dbg-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.128-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-templates-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.128-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.128-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"aspnetcore-runtime-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"aspnetcore-runtime-dbg-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"aspnetcore-targeting-pack-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-apphost-pack-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-hostfxr-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-runtime-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-runtime-dbg-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-targeting-pack-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.28-1.1.hum1"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.129-2.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-8.0-source-built-artifacts","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.129-2.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-sdk-dbg-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.129-2.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet-templates-8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.129-2.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"dotnet8.0","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:8.0.129-2.hum1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"engine.io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.5.4-aikido.2"},{"fixed":"6.5.4-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/engine.io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.5.4-root.io.2"},{"fixed":"6.5.4-root.io.1"}]}]}],"products":[{"vendor":"socket","product":"engine.io"},{"vendor":"socketio","product":"engine.io"}],"references":[{"url":"https://github.com/socketio/socket.io/security/advisories/GHSA-r635-g3xr-vw7x","tags":["x_refsource_CONFIRM","Patch","Vendor Advisory","advisory","web","article"]},{"url":"https://github.com/socketio/socket.io/commit/fc11285e14964c2132d122164bf130c355f60671","tags":["x_refsource_MISC","Patch","fix","web","article"]},{"url":"https://github.com/socketio/socket.io/releases/tag/engine.io@6.6.7","tags":["x_refsource_MISC","Release Notes","web","article"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-59725","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-r635-g3xr-vw7x"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59725.json","tags":["advisory"]},{"url":"https://github.com/socketio/socket.io","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2026:37577","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-59725","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-59869","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-39243","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-39245","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-12265","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_37577.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2498833","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-39243","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39243","tags":["advisory"]},{"url":"https://github.com/kevva/decompress","tags":["article"]},{"url":"https://github.com/kevva/decompress/issues/113","tags":["article"]},{"url":"https://www.npmjs.com/package/decompress","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2498814","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-39245","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39245","tags":["advisory"]},{"url":"https://github.com/kevva/decompress/issues/115","tags":["article"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-12265","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2498118","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-59725","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2498122","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-59869","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-59869","tags":["advisory"]},{"url":"https://github.com/nodeca/js-yaml/commit/24f13e79ee1343a7e30bd6f6c9d9cdbf0ac9b2b7","tags":["article"]},{"url":"https://github.com/nodeca/js-yaml/commit/59423c6f8cdc78742ac00e25a4dd39ef16b702e4","tags":["article"]},{"url":"https://github.com/nodeca/js-yaml/releases/tag/3.15.0","tags":["article"]},{"url":"https://github.com/nodeca/js-yaml/releases/tag/4.3.0","tags":["article"]},{"url":"https://github.com/nodeca/js-yaml/security/advisories/GHSA-52cp-r559-cp3m","tags":["article"]},{"url":"https://access.redhat.com/errata/RHSA-2026:42986","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_42986.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-59725","title":"Socket.IO: Engine.IO Polling Transport Connection Exhaustion","description":"Socket.IO enables bidirectional and low-latency communication for every platform. From 4.1.0 before 6.6.7, Engine.IO protocol v4 polling transport does not properly close the HTTP response for invalid binary POST requests with Content-Type: application/octet-stream, allowing an unauthenticated attacker to exhaust server-side connections and sockets. This issue is fixed in version 6.6.7.","status":"published","published":"2026-07-08T15:37:52.293Z","modified":"2026-10-14T18:46:37.137Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-404"],"updated_at":"2026-11-02T14:19:58.560602Z"}],"euvd":[{"id":"EUVD-2026-42313","description":"Socket.IO enables bidirectional and low-latency communication for every platform. From 4.1.0 before 6.6.7, Engine.IO protocol v4 polling transport does not properly close the HTTP response for invalid binary POST requests with Content-Type: application/octet-stream, allowing an unauthenticated attacker to exhaust server-side connections and sockets. This issue is fixed in version 6.6.7.","status":"published","published":"2026-07-08T15:37:52Z","modified":"2026-10-14T18:46:37Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T17:27:13.272666Z"}],"ghsa":[{"id":"GHSA-r635-g3xr-vw7x","title":"Socket.IO: Engine.IO Polling Transport Connection Exhaustion","description":"### Impact\n\nAn 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:\n\n```\nContent-Type: application/octet-stream\n```\n\n\nagainst an Engine.IO protocol v4 polling transport.\n\nIn 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.\n\nAn 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.\n\n### Patches\n\nThe issue was fixed in:\n\n- **engine.io `6.6.7`**\n\nThe fix ensures that invalid binary polling `POST` requests are explicitly rejected with an HTTP response and closed properly.\n\nUsers should upgrade to:\n\n```sh\nnpm install engine.io@^6.6.7\n```\n\nor a later fixed version.\n\nIf using Socket.IO through the monorepo/packages, update to a Socket.IO release that depends on a fixed `engine.io` version.\n\n### Workarounds\n\nIf upgrading immediately is not possible, possible mitigations include:\n\n- 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.\n- Disable HTTP long-polling if your deployment can use WebSocket-only transport.\n- Enforce strict request/connection timeouts at the HTTP server, reverse proxy, or load balancer.\n- Apply per-IP rate limits and connection limits for Engine.IO endpoints.\n- Restrict access to the Socket.IO/Engine.IO endpoint where feasible.\n\nExample Socket.IO configuration to disable polling, if compatible with your clients:\n\n```js\nconst io = new Server(httpServer, {\n  transports: [\"websocket\"],\n});\n```\n\n## References\n\n- Fix commit: https://github.com/socketio/socket.io/commit/fc11285e14964c2132d122164bf130c355f60671\n- engine.io changelog entry for `6.6.7`: https://github.com/socketio/socket.io/blob/main/packages/engine.io/CHANGELOG.md#667-2026-04-27\n- socket.io repository: https://github.com/socketio/socket.io\n- engine.io package: https://www.npmjs.com/package/engine.io","status":"published","published":"2026-07-20T21:49:54Z","modified":"2026-07-20T21:49:55Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-404"],"updated_at":"2026-11-02T14:40:48.410776Z"}],"nvd":[{"id":"CVE-2026-59725","description":"Socket.IO enables bidirectional and low-latency communication for every platform. From 4.1.0 before 6.6.7, Engine.IO protocol v4 polling transport does not properly close the HTTP response for invalid binary POST requests with Content-Type: application/octet-stream, allowing an unauthenticated attacker to exhaust server-side connections and sockets. This issue is fixed in version 6.6.7.","status":"published","published":"2026-07-08T16:16:33.133Z","modified":"2026-10-25T20:10:00.147Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-404"],"updated_at":"2026-11-02T14:12:28.040501Z"}],"osv":[{"id":"CVE-2026-59725","title":"Socket.IO: Engine.IO Polling Transport Connection Exhaustion","description":"Socket.IO enables bidirectional and low-latency communication for every platform. From 4.1.0 before 6.6.7, Engine.IO protocol v4 polling transport does not properly close the HTTP response for invalid binary POST requests with Content-Type: application/octet-stream, allowing an unauthenticated attacker to exhaust server-side connections and sockets. This issue is fixed in version 6.6.7.","status":"published","published":"2026-07-08T15:37:52.293Z","modified":"2026-10-28T02:31:12.802068451Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-404"],"updated_at":"2026-11-02T15:45:12.496548Z"},{"id":"GHSA-r635-g3xr-vw7x","title":"Socket.IO: Engine.IO Polling Transport Connection Exhaustion","description":"### Impact\n\nAn 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:\n\n```\nContent-Type: application/octet-stream\n```\n\n\nagainst an Engine.IO protocol v4 polling transport.\n\nIn 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.\n\nAn 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.\n\n### Patches\n\nThe issue was fixed in:\n\n- **engine.io `6.6.7`**\n\nThe fix ensures that invalid binary polling `POST` requests are explicitly rejected with an HTTP response and closed properly.\n\nUsers should upgrade to:\n\n```sh\nnpm install engine.io@^6.6.7\n```\n\nor a later fixed version.\n\nIf using Socket.IO through the monorepo/packages, update to a Socket.IO release that depends on a fixed `engine.io` version.\n\n### Workarounds\n\nIf upgrading immediately is not possible, possible mitigations include:\n\n- 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.\n- Disable HTTP long-polling if your deployment can use WebSocket-only transport.\n- Enforce strict request/connection timeouts at the HTTP server, reverse proxy, or load balancer.\n- Apply per-IP rate limits and connection limits for Engine.IO endpoints.\n- Restrict access to the Socket.IO/Engine.IO endpoint where feasible.\n\nExample Socket.IO configuration to disable polling, if compatible with your clients:\n\n```js\nconst io = new Server(httpServer, {\n  transports: [\"websocket\"],\n});\n```\n\n## References\n\n- Fix commit: https://github.com/socketio/socket.io/commit/fc11285e14964c2132d122164bf130c355f60671\n- engine.io changelog entry for `6.6.7`: https://github.com/socketio/socket.io/blob/main/packages/engine.io/CHANGELOG.md#667-2026-04-27\n- socket.io repository: https://github.com/socketio/socket.io\n- engine.io package: https://www.npmjs.com/package/engine.io","status":"published","published":"2026-07-20T21:49:54Z","modified":"2026-09-10T03:51:11.922627169Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-404"],"updated_at":"2026-11-02T15:46:55.480549Z"},{"id":"RHSA-2026:37577","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update","status":"published","published":"2026-07-11T10:05:45Z","modified":"2026-10-20T10:08:10Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:20.491441Z"},{"id":"RHSA-2026:42986","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-08-09T10:18:21Z","modified":"2026-10-15T10:19:23Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:20.491441Z"},{"id":"CLSA-2026-1792605466","title":"TuxCare security update for engine.io (2 CVEs)","description":"TuxCare rebuilt engine.io to address 2 CVEs. Fixed in 4.1.2-tuxcare.1.","status":"published","published":"2026-10-21T17:57:46Z","modified":"2026-10-21T20:30:50.498425088Z","updated_at":"2026-11-02T15:43:54.672859Z"},{"id":"CLSA-2026-1792617714","title":"TuxCare security update for engine.io (1 CVE)","description":"TuxCare rebuilt engine.io to address 1 CVE. Fixed in 6.5.5-tuxcare.2.","status":"published","published":"2026-10-21T21:21:54Z","modified":"2026-10-22T02:15:02.489658608Z","updated_at":"2026-11-02T15:43:54.672859Z"},{"id":"ROOT-APP-NPM-CVE-2026-59725","title":"CVE-2026-59725 in engine.io - Patched by Root","description":"Root has patched CVE-2026-59725 in the engine.io package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-15T08:36:19Z","modified":"2026-09-15T09:15:03.877898288Z","updated_at":"2026-11-02T15:53:27.649662Z"}]}}
