Inquirer.js is a versatile npm package designed to simplify the creation of interactive command-line interfaces. Versions 0.2.1 and 0.2.2 share the same core dependencies, including "async," "lodash," "cli-color," and "mute-stream," suggesting that the fundamental functionalities remain consistent. Similarly, the development dependencies for testing and building, encompassing tools like "chai," "grunt," "mocha," and "sinon," alongside build-related utilities, are identical across both versions. This suggests that the development and testing processes underwent no significant changes between these releases.
The key difference lies primarily in the release dates, with version 0.2.2 being published on July 13, 2013, a week after version 0.2.1's release on July 6, 2013. While the package metadata doesn't explicitly detail the specific bug fixes or new features introduced in 0.2.2, the quick succession of releases points towards a likely patch or minor enhancement. For developers considering Inquirer.js, both versions provide a robust foundation for building interactive CLIs. Those seeking the absolute latest (at the time) improvements would naturally gravitate to 0.2.2. However, given the similar dependency footprint and feature set, the choice between these specific versions likely comes down to whether the potential fixes implemented in 0.2.2 are relevant to their particular use case. Due to the lack of precise change descriptions, if a developer is using 0.2.1 successfully is probably not urgent to upgrade.
All the vulnerabilities related to the version 0.2.2 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.