{"id":"CVE-2021-23355","aliases":["EUVD-2021-0626","GHSA-7qmm-q394-fmch"],"status":"published","title":"Arbitrary Command Injection","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. PoC (provided by reporter): var ps_kill = require('ps-kill'); ps_kill.kill('$(touch success)',function(){});","severity":{"version":"3.1","score":5.6,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.01201,"percentile":0.68422,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-77","CWE-78"],"published":"2021-03-15T16:40:22Z","modified":"2026-06-17T03:38:36Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"ps-kill","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.0.0"}]}]},{"source":"osv","ecosystem":"npm","package":"ps-kill","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"1.0.0"}]}]}],"products":[{"vendor":"ps-kill_project","product":"ps-kill"}],"references":[{"url":"https://snyk.io/vuln/SNYK-JS-PSKILL-1078529","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-23355","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7qmm-q394-fmch"}],"sources":{"cve":[{"id":"CVE-2021-23355","title":"Arbitrary Command Injection","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. PoC (provided by reporter): var ps_kill = require('ps-kill'); ps_kill.kill('$(touch success)',function(){});","status":"published","published":"2021-03-15T16:40:22.069Z","modified":"2024-09-16T17:54:07.343Z","cvss":[{"version":"3.1","score":5.6,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P","level":"medium","assessor":"cna"}],"updated_at":"2026-11-02T14:33:00.819444Z"}],"euvd":[{"id":"EUVD-2021-0626","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. PoC (provided by reporter): var ps_kill = require('ps-kill'); ps_kill.kill('$(touch success)',function(){});","status":"published","published":"2021-03-15T16:40:22Z","modified":"2024-09-16T17:54:07Z","cvss":[{"version":"3.1","score":5.6,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P","level":"medium"}],"updated_at":"2026-11-03T00:55:37.743963Z"}],"ghsa":[{"id":"GHSA-7qmm-q394-fmch","title":"Command Injection in ps-kill","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. \n\nPoC (provided by reporter): \n```js\nvar ps_kill = require('ps-kill');\nps_kill.kill('$(touch success)', function() {});\n```","status":"published","published":"2021-03-19T21:19:29Z","modified":"2023-09-05T23:01:24Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77"],"updated_at":"2026-11-02T14:37:02.632342Z"}],"nvd":[{"id":"CVE-2021-23355","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. PoC (provided by reporter): var ps_kill = require('ps-kill'); ps_kill.kill('$(touch success)',function(){});","status":"published","published":"2021-03-15T17:15:21.41Z","modified":"2026-06-17T03:38:36.7Z","cvss":[{"version":"3.1","score":5.6,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:06:50.805771Z"}],"osv":[{"id":"GHSA-7qmm-q394-fmch","title":"Command Injection in ps-kill","description":"This affects all versions of package ps-kill. If (attacker-controlled) user input is given to the kill function, it is possible for an attacker to execute arbitrary commands. This is due to use of the child_process exec function without input sanitization in the index.js file. \n\nPoC (provided by reporter): \n```js\nvar ps_kill = require('ps-kill');\nps_kill.kill('$(touch success)', function() {});\n```","status":"published","published":"2021-03-19T21:19:29Z","modified":"2023-11-08T04:05:04.939274Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77"],"updated_at":"2026-11-02T15:46:41.349637Z"}]}}
