{"id":"CVE-2016-10541","aliases":["CLSA-2026-1773274563","EUVD-2019-0328","GHSA-qg8p-v9q4-gh34"],"status":"published","title":"Potential Command Injection in shell-quote","description":"The npm module \"shell-quote\" 1.6.0 and earlier cannot correctly escape \"\u003e\" and \"\u003c\" operator used for redirection in shell. Applications that depend on shell-quote may also be vulnerable. A malicious user could perform code injection.","severity":{"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","from":"nvd"},"epss":{"day":"2026-11-07","score":0.02216,"percentile":0.82744,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-78","CWE-94"],"published":"2018-05-31T20:00:00Z","modified":"2026-10-24T10:30:39Z","fixes":[{"ecosystem":"npm","package":"shell-quote","fixed_in":["1.6.1"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"shell-quote","fixed_in":["1.4.3-tuxcare.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"shell-quote","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.6.1"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"shell-quote","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4.3-tuxcare.0"},{"fixed":"1.4.3-tuxcare.1"}]}],"versions":["1.4.3"]},{"source":"osv","ecosystem":"npm","package":"shell-quote","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.6.1"}]}]}],"products":[{"vendor":"hackerone","product":"shell-quote node module"},{"vendor":"shell-quote_project","product":"shell-quote"}],"references":[{"url":"https://nodesecurity.io/advisories/117","tags":["x_transferred","Third Party Advisory","advisory"]},{"url":"https://github.com/advisories/GHSA-qg8p-v9q4-gh34","tags":["x_transferred","Exploit","Third Party Advisory","evidence","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-10541","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/117","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2016-10541","description":"The npm module \"shell-quote\" 1.6.0 and earlier cannot correctly escape \"\u003e\" and \"\u003c\" operator used for redirection in shell. Applications that depend on shell-quote may also be vulnerable. A malicious user could perform code injection.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T03:18:50.154Z","cwes":["CWE-78"],"updated_at":"2026-11-02T14:33:31.450804Z"}],"euvd":[{"id":"EUVD-2019-0328","description":"The npm module \"shell-quote\" 1.6.0 and earlier cannot correctly escape \"\u003e\" and \"\u003c\" operator used for redirection in shell. Applications that depend on shell-quote may also be vulnerable. A malicious user could perform code injection.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T03:18:50Z","updated_at":"2026-11-03T00:28:32.883624Z"}],"ghsa":[{"id":"GHSA-qg8p-v9q4-gh34","title":"Potential Command Injection in shell-quote","description":"Affected versions of `shell-quote` do not properly escape command line arguments, which may result in command injection if the library is used to escape user input destined for use as command line arguments.\n\n\n\n## Proof of Concept:\n\nThe following characters are not escaped properly: `\u003e`,`;`,`{`,`}`\n\nBash has a neat but not well known feature known as \"Bash Brace Expansion\", wherein a sub-command can be executed without spaces by running it between a set of `{}` and using the `,` instead of ` ` to seperate arguments. Because of this, full command injection is possible even though it was initially thought to be impossible. \n\n```\n   const quote = require('shell-quote').quote;\n   console.log(quote(['a;{echo,test,123,234}']));\n   // Actual                    \"a;{echo,test,123,234}\"\n   // Expected                  \"a\\;\\{echo,test,123,234\\}\"\n   // Functional Equivalent     \"a; echo 'test' '123' '1234'\"\n```\n\n\n\n## Recommendation\n\nUpdate to version 1.6.1 or later.","status":"published","published":"2019-02-18T23:58:29Z","modified":"2023-02-02T05:01:21Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-78","CWE-94"],"updated_at":"2026-11-02T14:36:39.76883Z"}],"nvd":[{"id":"CVE-2016-10541","description":"The npm module \"shell-quote\" 1.6.0 and earlier cannot correctly escape \"\u003e\" and \"\u003c\" operator used for redirection in shell. Applications that depend on shell-quote may also be vulnerable. A malicious user could perform code injection.","status":"published","published":"2018-05-31T20:29:01.503Z","modified":"2026-06-17T00:39:54.34Z","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","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","CWE-94"],"updated_at":"2026-11-02T14:03:39.176887Z"}],"osv":[{"id":"CVE-2016-10541","description":"The npm module \"shell-quote\" 1.6.0 and earlier cannot correctly escape \"\u003e\" and \"\u003c\" operator used for redirection in shell. Applications that depend on shell-quote may also be vulnerable. A malicious user could perform code injection.","status":"published","published":"2018-05-31T20:29:01.503Z","modified":"2026-10-24T10:30:39.47675529Z","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"}],"updated_at":"2026-11-02T15:44:01.531338Z"},{"id":"GHSA-qg8p-v9q4-gh34","title":"Potential Command Injection in shell-quote","description":"Affected versions of `shell-quote` do not properly escape command line arguments, which may result in command injection if the library is used to escape user input destined for use as command line arguments.\n\n\n\n## Proof of Concept:\n\nThe following characters are not escaped properly: `\u003e`,`;`,`{`,`}`\n\nBash has a neat but not well known feature known as \"Bash Brace Expansion\", wherein a sub-command can be executed without spaces by running it between a set of `{}` and using the `,` instead of ` ` to seperate arguments. Because of this, full command injection is possible even though it was initially thought to be impossible. \n\n```\n   const quote = require('shell-quote').quote;\n   console.log(quote(['a;{echo,test,123,234}']));\n   // Actual                    \"a;{echo,test,123,234}\"\n   // Expected                  \"a\\;\\{echo,test,123,234\\}\"\n   // Functional Equivalent     \"a; echo 'test' '123' '1234'\"\n```\n\n\n\n## Recommendation\n\nUpdate to version 1.6.1 or later.","status":"published","published":"2019-02-18T23:58:29Z","modified":"2026-09-10T03:48:38.913825182Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-78","CWE-94"],"updated_at":"2026-11-02T15:46:54.40888Z"},{"id":"CLSA-2026-1773274563","title":"TuxCare security update for shell-quote (1 CVE)","description":"TuxCare rebuilt shell-quote to address 1 CVE. Fixed in 1.4.3-tuxcare.1.","status":"published","published":"2026-08-04T14:52:12Z","modified":"2026-10-15T09:47:28.596940357Z","updated_at":"2026-11-02T15:43:43.621843Z"}]}}
