Shelljs is a valuable Node.js library that brings the power of Unix shell commands to JavaScript developers. Version 0.1.3 marks a step forward from version 0.1.2, primarily through the introduction of a new dependency: JSHint. This addition signals an increased focus on code quality and maintainability within the shelljs project. JSHint is a widely-used JavaScript code analysis tool, ensuring code adheres to specific styling and best practice guidelines, resulting in cleaner and more reliable code.
For developers using shelljs, this means that version 0.1.3 likely benefits from improved code consistency and fewer potential errors thanks to the integration of JSHint during development. This can lead to a more stable and predictable experience when incorporating shelljs into their projects. While version 0.1.2 provided a basic set of shell commands without external dependencies, version 0.1.3 demonstrated a commitement to software quality. Both versions offer the same core functionality – providing portable Unix shell commands within a Node.js environment. Developers already familiar with Unix commands can rapidly automate system tasks, manipulate files, and execute external programs directly from their JavaScript code. If you aim to use a javascript linter like JSHint in your project, you should use version 0.1.3.
All the vulnerabilities related to the version 0.1.3 of the package
Improper Privilege Management in shelljs
shelljs is vulnerable to Improper Privilege Management
Improper Privilege Management in shelljs
Output from the synchronous version of shell.exec()
may be visible to other users on the same system. You may be affected if you execute shell.exec()
in multi-user Mac, Linux, or WSL environments, or if you execute shell.exec()
as the root user.
Other shelljs functions (including the asynchronous version of shell.exec()
) are not impacted.
Patched in shelljs 0.8.5
Recommended action is to upgrade to 0.8.5.
https://huntr.dev/bounties/50996581-c08e-4eed-a90e-c0bac082679c/
If you have any questions or comments about this advisory:
Improper Privilege Management in shelljs
shelljs is vulnerable to Improper Privilege Management
Improper Privilege Management in shelljs
Output from the synchronous version of shell.exec()
may be visible to other users on the same system. You may be affected if you execute shell.exec()
in multi-user Mac, Linux, or WSL environments, or if you execute shell.exec()
as the root user.
Other shelljs functions (including the asynchronous version of shell.exec()
) are not impacted.
Patched in shelljs 0.8.5
Recommended action is to upgrade to 0.8.5.
https://huntr.dev/bounties/50996581-c08e-4eed-a90e-c0bac082679c/
If you have any questions or comments about this advisory:
Arbitrary Code Execution in underscore
The package underscore
from 1.13.0-0 and before 1.13.0-2, from 1.3.2 and before 1.12.1 are vulnerable to Arbitrary Code Execution via the template function, particularly when a variable property is passed as an argument as it is not sanitized.
Arbitrary File Write in cli
Affected versions of cli
use predictable temporary file names. If an attacker can create a symbolic link at the location of one of these temporarly file names, the attacker can arbitrarily write to any file that the user which owns the cli
process has permission to write to.
By creating Symbolic Links at the following locations, the target of the link can be written to.
lock_file = '/tmp/' + cli.app + '.pid',
log_file = '/tmp/' + cli.app + '.log';
Update to version 1.0.0 or later.
Regular Expression Denial of Service in minimatch
Affected versions of minimatch
are vulnerable to regular expression denial of service attacks when user input is passed into the pattern
argument of minimatch(path, pattern)
.
var minimatch = require(“minimatch”);
// utility function for generating long strings
var genstr = function (len, chr) {
var result = “”;
for (i=0; i<=len; i++) {
result = result + chr;
}
return result;
}
var exploit = “[!” + genstr(1000000, “\\”) + “A”;
// minimatch exploit.
console.log(“starting minimatch”);
minimatch(“foo”, exploit);
console.log(“finishing minimatch”);
Update to version 3.0.2 or later.
minimatch ReDoS vulnerability
A vulnerability was found in the minimatch package. This flaw allows a Regular Expression Denial of Service (ReDoS) when calling the braceExpand function with specific arguments, resulting in a Denial of Service.