GitHub Advisoryadvisory · npm
GHSA-25hc-qcg6-38wj socket.io has an unhandled 'error' event
MEDIUM
Official page ↗
- Aliases
- CVE-2024-38355
- Ecosystem
- npm
- Packages
- socket.io
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
- Weaknesses
- CWE-20, CWE-754
- Reviewed
- 2024-06-19
Affected packages
• npm socket.io: < 2.5.1 → fixed in 2.5.1
• npm socket.io: >= 3.0.0, < 4.6.2 → fixed in 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 https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115, included in `[email protected]` (released in May 2023).
The fix was backported in the 2.x branch today: https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c
Workarounds
As a workaround for the affected versions of the `socket.io` package, you can attach a listener for the "error" event:
```js
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
• https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115
• https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c
Related
Alias · CVE (1)
- CVE-2024-38355 Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. vulnerability
References
- https://github.com/socketio/socket.io/security/advisories/GHSA-25hc-qcg6-38wj web
- https://nvd.nist.gov/vuln/detail/CVE-2024-38355 advisory
- https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115 web
- https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c web
- https://github.com/socketio/socket.io package