{"schema_version":"1.9.0","id":"GHSA-25hc-qcg6-38wj","published":"2024-06-19T15:04:41Z","modified":"2026-09-10T03:50:14.698410815Z","aliases":["CVE-2024-38355"],"summary":"socket.io has an unhandled 'error' event","details":"### Impact\n\nA specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process.\n\n```\nnode:events:502\n    throw err; // Unhandled 'error' event\n    ^\n\nError [ERR_UNHANDLED_ERROR]: Unhandled error. (undefined)\n    at new NodeError (node:internal/errors:405:5)\n    at Socket.emit (node:events:500:17)\n    at /myapp/node_modules/socket.io/lib/socket.js:531:14\n    at process.processTicksAndRejections (node:internal/process/task_queues:77:11) {\n  code: 'ERR_UNHANDLED_ERROR',\n  context: undefined\n}\n```\n\n### Affected versions\n\n| Version range    | Needs minor update?                            |\n|------------------|------------------------------------------------|\n| `4.6.2...latest` | Nothing to do               |\n| `3.0.0...4.6.1`  | Please upgrade to `socket.io@4.6.2` (at least) |\n| `2.3.0...2.5.0`  | Please upgrade to `socket.io@2.5.1`            |\n\n### Patches\n\nThis issue is fixed by https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115, included in `socket.io@4.6.2` (released in May 2023).\n\nThe fix was backported in the 2.x branch today: https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c\n\n### Workarounds\n\nAs a workaround for the affected versions of the `socket.io` package, you can attach a listener for the \"error\" event:\n\n```js\nio.on(\"connection\", (socket) => {\n  socket.on(\"error\", () => {\n    // ...\n  });\n});\n```\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n- Open a discussion [here](https://github.com/socketio/socket.io/discussions)\n\nThanks a lot to [Paul Taylor](https://github.com/Y0ursTruly) for the responsible disclosure.\n\n### References\n\n- https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115\n- https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c\n","affected":[{"package":{"name":"socket.io","ecosystem":"npm","purl":"pkg:npm/socket.io"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.5.1"}]}],"database_specific":{"last_known_affected_version_range":"< 2.5.0","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/06/GHSA-25hc-qcg6-38wj/GHSA-25hc-qcg6-38wj.json"}},{"package":{"name":"socket.io","ecosystem":"npm","purl":"pkg:npm/socket.io"},"ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0"},{"fixed":"4.6.2"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/06/GHSA-25hc-qcg6-38wj/GHSA-25hc-qcg6-38wj.json"}}],"references":[{"type":"WEB","url":"https://github.com/socketio/socket.io/security/advisories/GHSA-25hc-qcg6-38wj"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-38355"},{"type":"WEB","url":"https://github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115"},{"type":"WEB","url":"https://github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c"},{"type":"PACKAGE","url":"https://github.com/socketio/socket.io"}],"database_specific":{"cwe_ids":["CWE-20","CWE-754"],"github_reviewed":true,"github_reviewed_at":"2024-06-19T15:04:41Z","nvd_published_at":"2024-06-19T20:15:11Z","severity":"MODERATE"},"severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N"}]}