Packages / shell-quote / Security

CriticalVulnerabilityGHSA-g4rg-993r-mgx7CVE-2021-42740Published 24 May 2022

Improper Neutralization of Special Elements used in a Command in Shell-quote

Your version

Affected releases · shell-quote

  • 1.x1.6.3 – 1.7.2Fixed in 1.7.3

On 1.x, the newest line:

npm install shell-quote@1.7.3
Every release on a timeline
  1. Not affected

    0.0.0 – 1.6.2

    19 releases

  2. Affected

    1.6.3 – 1.7.2

    4 releases

  3. Fixed

    1.7.3 – 1.12.0

    11 releases, latest

34 stable releases of shell-quote, oldest to newest.

What happens

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.