CVE-2024-38355
Unhandled 'error' event in socket.io
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit 15af22fc22 which has been included in [email protected] (released in May 2023). The fix was backported in the 2.x branch as well with commit d30630ba10. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
7.3
Unhandled 'error' event in socket.io
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit 15af22fc22 which has been included in [email protected] (released in May 2023). The fix was backported in the 2.x branch as well with commit d30630ba10. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
- Record
CVE-2024-38355- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-20, CWE-754
- Updated
- 2026-11-02
EUVDEUVD-2024-1878
7.3
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit 15af22fc22 which has been included in [email protected] (released in May 2023). The fix was backported in the 2.x branch as well with commit d30630ba10. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
- Record
EUVD-2024-1878- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-25hc-qcg6-38wj
6.9
socket.io has an unhandled 'error' event
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:
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
- Record
GHSA-25hc-qcg6-38wj- CVSS 4.0
- 6.9 Medium
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 - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-20, CWE-754
- Updated
- 2026-11-02
NVD
7.3
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit 15af22fc22 which has been included in [email protected] (released in May 2023). The fix was backported in the 2.x branch as well with commit d30630ba10. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
- Record
CVE-2024-38355- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-20, CWE-754
- Updated
- 2026-11-02
OSV
7.3
Unhandled 'error' event in socket.io
Socket.IO is an open source, real-time, bidirectional, event-based, communication framework. A specially crafted Socket.IO packet can trigger an uncaught exception on the Socket.IO server, thus killing the Node.js process. This issue is fixed by commit 15af22fc22 which has been included in [email protected] (released in May 2023). The fix was backported in the 2.x branch as well with commit d30630ba10. Users are advised to upgrade. Users unable to upgrade may attach a listener for the "error" event to catch these errors.
- Record
CVE-2024-38355- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-20, CWE-754
- Updated
- 2026-11-02
OSVGHSA-25hc-qcg6-38wj
6.9
socket.io has an unhandled 'error' event
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:
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
- Record
GHSA-25hc-qcg6-38wj- CVSS 4.0
- 6.9 Medium
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 - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-20, CWE-754
- Updated
- 2026-11-02
Show 6 moreShow less
OSVROOT-APP-NPM-CVE-2024-38355
7.3
CVE-2024-38355 in socket.io - Patched by Root
Root has patched CVE-2024-38355 in the socket.io package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2024-38355- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-06
OSVCLSA-2026-1776818218 No score
TuxCare security update for socket.io (2 CVEs)
TuxCare rebuilt socket.io to address 2 CVEs. Fixed in 2.0.4-tuxcare.1.
- Record
CLSA-2026-1776818218- Updated
- 2026-11-02
OSVCLSA-2026-1789549941 No score
TuxCare security update for socket.io (1 CVE)
TuxCare rebuilt socket.io to address 1 CVE. Fixed in 3.1.1-tuxcare.1.
- Record
CLSA-2026-1789549941- Updated
- 2026-11-02
OSVCLSA-2026-1792604680 No score
TuxCare security update for socket.io (2 CVEs)
TuxCare rebuilt socket.io to address 2 CVEs. Fixed in 1.7.4-tuxcare.1.
- Record
CLSA-2026-1792604680- Updated
- 2026-11-02
OSVCLSA-2026-1793304087 No score
TuxCare security update for socket.io (2 CVEs)
TuxCare rebuilt socket.io to address 2 CVEs. Fixed in 1.7.3-tuxcare.1.
- Record
CLSA-2026-1793304087- Updated
- 2026-11-02
OSVSUSE-SU-2024:3771-1 No score
Security update for pgadmin4
This update for pgadmin4 fixes the following issues:
- CVE-2024-38355: Fixed socket.io: unhandled 'error' event (bsc#1226967)
- CVE-2024-38998: Fixed requirejs: prototype pollution via function config (bsc#1227248)
- CVE-2024-38999: Fixed requirejs: prototype pollution via function s.contexts._.configure (bsc#1227252)
- CVE-2024-39338: Fixed axios: server-side request forgery due to requests for path relative URLs being processed as protocol relative URLs in axios (bsc#1229423)
- CVE-2024-4067: Fixed micromatch: vulnerable to Regular Expression Denial of Service (ReDoS) (bsc#1224366)
- CVE-2024-4068: Fixed braces: fails to limit the number of characters it can handle, which could lead to Memory Exhaustion (bsc#1224295)
- CVE-2024-43788: Fixed webpack: DOM clobbering gadget in AutoPublicPathRuntimeModule could lead to XSS (bsc#1229861)
- CVE-2024-48948: Fixed elliptic: ECDSA signature verification error due to leading zero may reject legitimate transactions in elliptic (bsc#1231684)
- CVE-2024-48949: Fixed elliptic: Missing Validation in Elliptic's EDDSA Signature Verification (bsc#1231564)
- CVE-2024-9014: Fixed OAuth2 issue that could lead to information leak (bsc#1230928)
- Record
SUSE-SU-2024:3771-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
socket.ionpm |
3.0.0 up to 4.6.2 | 4.6.2 |
socket.ionpm |
before 2.5.1 | 2.5.1 |
socket.ioTuxCare:npm From an advisory covering 2 CVEs |
2.0.4-tuxcare.0 up to 2.0.4-tuxcare.1, plus listed versions 2.0.4 |
2.0.4-tuxcare.1 |
socket.ioTuxCare:npm |
3.1.1-tuxcare.0 up to 3.1.1-tuxcare.1, plus listed versions 3.1.1 |
3.1.1-tuxcare.1 |
socket.ioTuxCare:npm From an advisory covering 2 CVEs |
1.7.4-tuxcare.0 up to 1.7.4-tuxcare.1, plus listed versions 1.7.4 |
1.7.4-tuxcare.1 |
socket.ioTuxCare:npm From an advisory covering 2 CVEs |
1.7.3-tuxcare.0 up to 1.7.3-tuxcare.1, plus listed versions 1.7.3 |
1.7.3-tuxcare.1 |
socket.ioRoot:npm |
before 3.1.2-aikido.2 | 3.1.2-aikido.23.1.2-aikido.32.0.3-aikido.1 |
@rootio/socket.ioRoot:npm |
before 3.1.2-root.io.1 | 3.1.2-root.io.13.1.2-root.io.23.1.2-root.io.32.0.3-root.io.1 |
pgadmin4SUSE:Linux Enterprise Module for Python 3 15 SP6 From an advisory covering 10 CVEs |
before 8.5-150600.3.6.1 | 8.5-150600.3.6.1 |
pgadmin4openSUSE:Leap 15.6 From an advisory covering 10 CVEs |
before 8.5-150600.3.6.1 | 8.5-150600.3.6.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | PawelMurdzek/CVE-2024-38355-PoC | 2025-12-23 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | OSV | |
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-38355 is a high vulnerability (CVSS 7.3) in Socket Socket.io, published June 19, 2024. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.81%, the 57th percentile. Fixed in socket.io 4.6.2.
References
github.com/socketio/socket.io/security/advisories/GHSA-25hc-qcg6-38wj
github.com/socketio/socket.io/commit/15af22fc22bc6030fcead322c106f07640336115
github.com/socketio/socket.io/commit/d30630ba10562bf987f4d2b42440fc41a828119c
vicarius.io/vsociety/posts/unhandled-exception-in-socketio-cve-2024-38355
nvd.nist.gov/vuln/detail/CVE-2024-38355
github.com/advisories/GHSA-25hc-qcg6-38wj
Show 23 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2024/38xxx/CVE-2024-38355.json
github.com/socketio/socket.io
suse.com/support/update/announcement/2024/suse-su-20243771-1
bugzilla.suse.com/1224295
bugzilla.suse.com/1224366
bugzilla.suse.com/1226967
bugzilla.suse.com/1227248
bugzilla.suse.com/1227252
bugzilla.suse.com/1229423
bugzilla.suse.com/1229861
bugzilla.suse.com/1230928
bugzilla.suse.com/1231564
bugzilla.suse.com/1231684
suse.com/security/cve/CVE-2024-38355
suse.com/security/cve/CVE-2024-38998
suse.com/security/cve/CVE-2024-38999
suse.com/security/cve/CVE-2024-39338
suse.com/security/cve/CVE-2024-4067
suse.com/security/cve/CVE-2024-4068
suse.com/security/cve/CVE-2024-43788
suse.com/security/cve/CVE-2024-48948
suse.com/security/cve/CVE-2024-48949
suse.com/security/cve/CVE-2024-9014