Skip to content

socket.io has an unhandled 'error' event

High severity GitHub Reviewed Published Jun 19, 2024 in socketio/socket.io • Updated Aug 8, 2024

Package

npm socket.io (npm)

Affected versions

< 2.5.0
>= 3.0.0, < 4.6.2

Patched versions

2.5.1
4.6.2

Description

Impact

A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process.

node:events:502
    throw err; // Unhandled 'error' event
    ^

Error [ERR_UNHANDLED_ERROR]: Unhandled error. (undefined)
    at new NodeError (node:internal/errors:405:5)
    at Socket.emit (node:events:500:17)
    at /myapp/node_modules/socket.io/lib/socket.js:531:14
    at process.processTicksAndRejections (node:internal/process/task_queues:77:11) {
  code: 'ERR_UNHANDLED_ERROR',
  context: undefined
}

Affected versions

Version range Needs minor update?
4.6.2...latest Nothing to do
3.0.0...4.6.1 Please upgrade to [email protected] (at least)
2.3.0...2.5.0 Please upgrade to [email protected]

Patches

This issue is fixed by socketio/socket.io@15af22f, included in [email protected] (released in May 2023).

The fix was backported in the 2.x branch today: socketio/socket.io@d30630b

Workarounds

As a workaround for the affected versions of the socket.io package, you can attach a listener for the "error" event:

io.on("connection", (socket) => {
  socket.on("error", () => {
    // ...
  });
});

For more information

If you have any questions or comments about this advisory:

  • Open a discussion here

Thanks a lot to Paul Taylor for the responsible disclosure.

References

References

@darrachequesne darrachequesne published to socketio/socket.io Jun 19, 2024
Published to the GitHub Advisory Database Jun 19, 2024
Reviewed Jun 19, 2024
Published by the National Vulnerability Database Jun 19, 2024
Last updated Aug 8, 2024

Severity

High

EPSS score

0.045%
(17th percentile)

CVE ID

CVE-2024-38355

GHSA ID

GHSA-25hc-qcg6-38wj

Source code

Credits

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