Shescape Shell Injection Flaw Patched
A critical shell injection vulnerability in the Shescape library allows attackers to bypass security filters when using CMD on Windows systems.
A critical shell injection vulnerability has been identified in the Shescape npm package, affecting versions prior to 2.1.14 and 3.0.1. The flaw occurs when the library is configured to use the Windows Command Prompt (CMD) as its shell, allowing attackers to manipulate command execution through unescaped parentheses.
This vulnerability is significant because it impacts the core functionality of the escape and escapeAll APIs. When these functions fail to properly sanitize input containing specific characters, it can lead to unintended code execution. The issue is triggered specifically when the shell option is set to cmd.exe or when shell is set to true on a system where CMD is the default shell provider.
What's at Risk
The vulnerability impacts developers and organizations utilizing Shescape versions 2.x and 3.x in environments where Windows CMD is the active shell. Any application that processes untrusted user input and passes it through the affected library's escaping functions is potentially at risk.
Systems that rely on this library to sanitize inputs for shell commands are the most exposed. If an application constructs shell commands dynamically using inputs that pass through Shescape, an attacker could potentially inject malicious commands that the system executes with the privileges of the application process.
How the Flaw Works
Shell injection is a class of vulnerability that occurs when an application takes user-supplied data and incorporates it into a shell command without sufficient validation or escaping. In general, this allows an attacker to break out of the intended command context by injecting shell metacharacters.
Metacharacters are symbols that have special meaning to the command interpreter, such as pipes, redirects, or, in this case, parentheses. By injecting these characters, an attacker can manipulate the command structure to execute arbitrary commands, terminate existing processes, or redirect output. This class of flaw typically arises when a library fails to account for the unique syntax requirements of a specific target shell, leading to a breakdown in input sanitization.
How to Protect Your Systems
- Upgrade to Shescape version 2.1.14 or 3.0.1 immediately to resolve the vulnerability.
- If you are running an older version of the library, migrate to the latest 3.x release, as versions below 2.0.0 will not receive security patches.
- Implement an immediate workaround by explicitly stripping all ( and ) characters from untrusted inputs before they reach the library.
- Audit your codebase to identify all instances where shell: 'cmd.exe' or shell: true is configured.
- Follow standard security practices by adhering to the principle of least privilege for the service accounts running your Node.js applications.
Given the critical severity of this flaw and the ease with which shell injection can be leveraged to compromise an environment, prompt patching is essential. Organizations should prioritize these updates to ensure that their command execution pipelines remain secure against potential injection attempts.
Sources
- GitHub Security Advisories Original source
Continue Reading
OpenAM WebAuthn RCE Vulnerability Patched
A critical deserialization flaw in the OpenAM WebAuthn module allows unauthenticated attackers to achieve remote code execution via a bypass of security filters.
Critical OpenAM RCE Flaw Allows Server Takeover
A critical vulnerability in OpenAM allows unauthenticated attackers to execute arbitrary code, potentially leading to a full compromise of the server.
Critical OpenDJ DSML Gateway Flaw Patched
A critical vulnerability in OpenDJ allows unauthenticated attackers to perform SSRF, read local files, and trigger memory-exhaustion denial-of-service attacks.