Skip to main content

Improper Neutralization of Special Elements used in a Command ('Command Injection')

CVE-2021-42740

Severity High
Score 9.8/10

Summary

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 lowercase letter "a", such as the backtick character.

  • LOW
  • NETWORK
  • HIGH
  • UNCHANGED
  • NONE
  • NONE
  • HIGH
  • HIGH

CWE-77 - Command Injection

A command injection attack involves injecting an operating system command through the data input, which gets executed on the host operating system with the privileges of the victimized application. The impact of a command injection attack may range from loss of data confidentiality and integrity to unauthorized remote access to the hosting system. The attack may cause serious data breaches and system takeover.

Advisory Timeline

  • Published