Improper Neutralization of Special Elements used in a Command in Shell-quote
Critical severity
GitHub Reviewed
Published
May 24, 2022
to the GitHub Advisory Database
•
Updated Feb 2, 2024
Description
Published by the National Vulnerability Database
Oct 21, 2021
Published to the GitHub Advisory Database
May 24, 2022
Reviewed
Jun 21, 2022
Last updated
Feb 2, 2024
The shell-quote package before 1.7.3 for Node.js allows command injection. An attacker can inject unescaped shell metacharacters through a regex designed to support Windows drive letters. If the output of this package is passed to a real shell as a quoted argument to a command with
exec()
, an attacker can inject arbitrary commands. This is because the Windows drive letter regex character class is[A-z]
instead of the correct[A-Za-z]
. Several shell metacharacters exist in the space between capital letter Z and lower case letter a, such as the backtick character.References