{"id":"CVE-2023-37899","aliases":["EUVD-2023-2077","GHSA-hhr9-rh25-hvf9"],"status":"published","title":"feathersjs socket handler allows abusing implicit toString","description":"Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feathers socket handler did not catch invalid string conversion errors like `const message = ${{ toString: '' }}` which would cause the NodeJS process to crash when sending an unexpected Socket.io message like `socket.emit('find', { toString: '' })`.  A fix has been released in versions 5.0.8 and 4.5.18. Users are advised to upgrade. There is no known workaround for this vulnerability.","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-10","score":0.01188,"percentile":0.68157,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-754"],"published":"2023-07-19T19:45:31Z","modified":"2026-10-28T02:31:07Z","fixes":[{"ecosystem":"npm","package":"@feathersjs/socketio","fixed_in":["4.5.18","5.0.8"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@feathersjs/transport-commons","fixed_in":["4.5.18","5.0.8"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@feathersjs/socketio","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"4.5.17"},{"fixed":"4.5.18"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@feathersjs/socketio","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"last_affected":"5.0.7"},{"fixed":"5.0.8"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@feathersjs/transport-commons","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"4.5.17"},{"fixed":"4.5.18"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@feathersjs/transport-commons","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"last_affected":"5.0.7"},{"fixed":"5.0.8"}]}]},{"source":"osv","ecosystem":"npm","package":"@feathersjs/socketio","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.5.18"}]}]},{"source":"osv","ecosystem":"npm","package":"@feathersjs/socketio","ranges":[{"type":"SEMVER","events":[{"introduced":"5.0.0"},{"fixed":"5.0.8"}]}]},{"source":"osv","ecosystem":"npm","package":"@feathersjs/transport-commons","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.5.18"}]}]},{"source":"osv","ecosystem":"npm","package":"@feathersjs/transport-commons","ranges":[{"type":"SEMVER","events":[{"introduced":"5.0.0"},{"fixed":"5.0.8"}]}]}],"products":[{"vendor":"feathersjs","product":"feathers"}],"references":[{"url":"https://github.com/feathersjs/feathers/security/advisories/GHSA-hhr9-rh25-hvf9","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Vendor Advisory","advisory","web"]},{"url":"https://github.com/feathersjs/feathers/pull/3241","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://github.com/feathersjs/feathers/pull/3242","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://github.com/feathersjs/feathers/blob/crow/CHANGELOG.md#4518-2023-07-19","tags":["x_refsource_MISC","x_transferred","Release Notes","web"]},{"url":"https://github.com/feathersjs/feathers/blob/dove/CHANGELOG.md#508-2023-07-19","tags":["x_refsource_MISC","x_transferred","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-37899","tags":["advisory"]},{"url":"https://github.com/feathersjs/feathers/commit/0b9a6b19b12ad05934e4c8bd9917448ed39d1ed8","tags":["web"]},{"url":"https://github.com/feathersjs/feathers/commit/c397ab3a0cd184044ae4f73540549b30a396821c","tags":["web"]},{"url":"https://github.com/advisories/GHSA-hhr9-rh25-hvf9"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/37xxx/CVE-2023-37899.json","tags":["advisory"]},{"url":"https://github.com/feathersjs/feathers","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-37899","title":"feathersjs socket handler allows abusing implicit toString","description":"Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feathers socket handler did not catch invalid string conversion errors like `const message = ${{ toString: '' }}` which would cause the NodeJS process to crash when sending an unexpected Socket.io message like `socket.emit('find', { toString: '' })`.  A fix has been released in versions 5.0.8 and 4.5.18. Users are advised to upgrade. There is no known workaround for this vulnerability.","status":"published","published":"2023-07-19T19:45:31.386Z","modified":"2024-10-28T15:12:04.645Z","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-754"],"updated_at":"2026-11-02T14:35:16.454633Z"}],"euvd":[{"id":"EUVD-2023-2077","description":"Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feathers socket handler did not catch invalid string conversion errors like `const message = ${{ toString: '' }}` which would cause the NodeJS process to crash when sending an unexpected Socket.io message like `socket.emit('find', { toString: '' })`.  A fix has been released in versions 5.0.8 and 4.5.18. Users are advised to upgrade. There is no known workaround for this vulnerability.","status":"published","published":"2023-07-19T19:45:31Z","modified":"2024-10-28T15:12:04Z","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-03T00:05:16.135425Z"}],"ghsa":[{"id":"GHSA-hhr9-rh25-hvf9","title":"Feathers socket handler allows abusing implicit toString","description":"### Impact\n\nFeathers socket handler did not catch invalid string conversion errors like:\n\n```ts\nconst message = `${{ toString: '' }}`\n```\n\nCausing the NodeJS process to crash when sending an unexpected Socket.io message like\n\n```ts\nsocket.emit('find', { toString: '' })\n```\n\n### Patches\n\nA fix has been released in\n\n- `v5.0.8` via #3241\n- `v4.5.18` via #3242\n\n### Workarounds\n\nSince it is in the core Socket handling code upgrading to the latest version is necessary.\n### References\n\n- [v5.0.8 Changelog](https://github.com/feathersjs/feathers/blob/dove/CHANGELOG.md#508-2023-07-19)\n- [v4.5.18 Changelog](https://github.com/feathersjs/feathers/blob/crow/CHANGELOG.md#4518-2023-07-19)\n","status":"published","published":"2023-07-20T14:54:30Z","modified":"2023-11-07T05:04:42Z","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-754"],"updated_at":"2026-11-02T14:37:15.055009Z"}],"nvd":[{"id":"CVE-2023-37899","description":"Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feathers socket handler did not catch invalid string conversion errors like `const message = ${{ toString: '' }}` which would cause the NodeJS process to crash when sending an unexpected Socket.io message like `socket.emit('find', { toString: '' })`.  A fix has been released in versions 5.0.8 and 4.5.18. Users are advised to upgrade. There is no known workaround for this vulnerability.","status":"published","published":"2023-07-19T20:15:10.807Z","modified":"2026-06-17T06:08:51.6Z","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"},{"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":"primary"}],"cwes":["CWE-754"],"updated_at":"2026-11-02T14:08:17.044696Z"}],"osv":[{"id":"CVE-2023-37899","title":"feathersjs socket handler allows abusing implicit toString","description":"Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. Feathers socket handler did not catch invalid string conversion errors like `const message = ${{ toString: '' }}` which would cause the NodeJS process to crash when sending an unexpected Socket.io message like `socket.emit('find', { toString: '' })`.  A fix has been released in versions 5.0.8 and 4.5.18. Users are advised to upgrade. There is no known workaround for this vulnerability.","status":"published","published":"2023-07-19T19:45:31.386Z","modified":"2026-10-28T02:31:07.11080824Z","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-754"],"updated_at":"2026-11-02T15:44:32.922049Z"},{"id":"GHSA-hhr9-rh25-hvf9","title":"Feathers socket handler allows abusing implicit toString","description":"### Impact\n\nFeathers socket handler did not catch invalid string conversion errors like:\n\n```ts\nconst message = `${{ toString: '' }}`\n```\n\nCausing the NodeJS process to crash when sending an unexpected Socket.io message like\n\n```ts\nsocket.emit('find', { toString: '' })\n```\n\n### Patches\n\nA fix has been released in\n\n- `v5.0.8` via #3241\n- `v4.5.18` via #3242\n\n### Workarounds\n\nSince it is in the core Socket handling code upgrading to the latest version is necessary.\n### References\n\n- [v5.0.8 Changelog](https://github.com/feathersjs/feathers/blob/dove/CHANGELOG.md#508-2023-07-19)\n- [v4.5.18 Changelog](https://github.com/feathersjs/feathers/blob/crow/CHANGELOG.md#4518-2023-07-19)\n","status":"published","published":"2023-07-20T14:54:30Z","modified":"2023-11-08T04:13:03.762779Z","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-754"],"updated_at":"2026-11-02T15:46:49.28217Z"}]}}
