Inquirer.js, a popular npm package for building interactive command-line interfaces, saw a minor version update from 0.7.2 to 0.7.3. While seemingly small, understanding the nuances between versions is key for developers integrating this library into their projects. Both versions share the same core dependencies, including RxJS for reactive programming, Chalk for terminal styling, Lodash for utility functions, Figures for Unicode symbols, Through for stream transformations, cli-color for terminal colors, readline2 for advanced readline functionalities, and mute-stream for controlling standard output.
The key difference lies in the release date. Version 0.7.3 was released on September 22, 2014, a week after version 0.7.2, which was released on September 15, 2014. This suggests that version 0.7.3 likely includes bug fixes or minor enhancements addressing issues discovered in 0.7.2. For developers, this means that upgrading to 0.7.3 is generally recommended for a more stable and refined experience.
Both versions include the same suite of development dependencies used for testing and building the package. These include tools like Chai and Sinon for assertions and mocking, Grunt for task automation, and Mocha for unit testing. The shared dependencies emphasize the consistent development practices and testing rigor behind the Inquirer.js library, ensuring a reliable tool for creating engaging terminal user experiences. Developers looking for a stable and tested library for handling command-line interactions should consider Inquirer.js. Choosing the latest version is generally advisable to benefit from the most recent improvements and fixes.
All the vulnerabilities related to the version 0.7.3 of the package
Prototype Pollution in lodash
Versions of lodash
before 4.17.12 are vulnerable to Prototype Pollution. The function defaultsDeep
allows a malicious user to modify the prototype of Object
via {constructor: {prototype: {...}}}
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.12 or later.
Prototype Pollution in lodash
Versions of lodash
before 4.17.5 are vulnerable to prototype pollution.
The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of Object
via __proto__
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.5 or later.
Prototype Pollution in lodash
Versions of lodash
before 4.17.11 are vulnerable to prototype pollution.
The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of Object
via {constructor: {prototype: {...}}}
causing the addition or modification of an existing property that will exist on all objects.
Update to version 4.17.11 or later.
Regular Expression Denial of Service (ReDoS) in lodash
lodash prior to 4.7.11 is affected by: CWE-400: Uncontrolled Resource Consumption. The impact is: Denial of service. The component is: Date handler. The attack vector is: Attacker provides very long strings, which the library attempts to match using a regular expression. The fixed version is: 4.7.11.
Regular Expression Denial of Service (ReDoS) in lodash
All versions of package lodash prior to 4.17.21 are vulnerable to Regular Expression Denial of Service (ReDoS) via the toNumber
, trim
and trimEnd
functions.
Steps to reproduce (provided by reporter Liyuan Chen):
var lo = require('lodash');
function build_blank(n) {
var ret = "1"
for (var i = 0; i < n; i++) {
ret += " "
}
return ret + "1";
}
var s = build_blank(50000) var time0 = Date.now();
lo.trim(s)
var time_cost0 = Date.now() - time0;
console.log("time_cost0: " + time_cost0);
var time1 = Date.now();
lo.toNumber(s) var time_cost1 = Date.now() - time1;
console.log("time_cost1: " + time_cost1);
var time2 = Date.now();
lo.trimEnd(s);
var time_cost2 = Date.now() - time2;
console.log("time_cost2: " + time_cost2);
Command Injection in lodash
lodash
versions prior to 4.17.21 are vulnerable to Command Injection via the template function.