CVE-2021-42740 Improper Neutralization of Special Elements used in a Command in Shell-quote
Attackers can execute arbitrary commands via shell metacharacters in the shell-quote Node.js library due to a flawed regex.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-42740?
CVE-2021-42740 is a critical command injection vulnerability in n/a, published on 21 Oct 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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.
Weakness: CWE-77
Which versions are affected by CVE-2021-42740?
2 open source packages ship an affected version, including shell-quote. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
shell-quote npm | From 1.6.3 | 1.7.3 |
shell-quote npm | From 1.6.3 | 1.7.3 |
Products include Shell-Quote Project Shell-Quote.
How do I fix CVE-2021-42740?
Upgrade shell-quote to 1.7.3 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2021-42740 being exploited?
There is no known exploitation of CVE-2021-42740 in the wild and no public exploit code.
Other vulnerabilities in n/a
Sources
Also known as CLSA-2026-1773879463, DEBIAN-CVE-2021-42740, GHSA-g4rg-993r-mgx7, ROOT-APP-NPM-CVE-2021-42740, UBUNTU-CVE-2021-42740.