CVE-2015-8855
High · 7.5CVSS
7.5
EPSS
6.7%
Published
Jan 23, 2017
CISA due date
—
Cloudanix analysis
Attackers can send specially crafted long text to slow down or stop systems that read software version numbers, making online services unavailable.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A regular expression in the semver package performs catastrophic backtracking when given a long version string, resulting in excessive CPU consumption and denial of service.
Why it matters to the business
Services relying on affected Node.js components or WordPress deployments can experience prolonged unavailability or high resource usage, leading to degraded performance and potential operational disruption until resources are restored.
How an attack unfolds
An attacker locates an entry point that passes untrusted input to semver parsing functions, crafts a long version string engineered to trigger regex backtracking, and submits it to induce sustained CPU exhaustion.
How to fix it
Upgrade the semver package to version 4.3.2 or later; for WordPress (Bitnami) deployments, apply the fixed release 5.8.3 or newer.
How to confirm the fix worked
Confirm the installed semver package version meets or exceeds 4.3.2; re-test parsing functions with known ReDoS payloads to verify CPU usage remains bounded.
Typical attack path
- Locate endpoints or APIs that accept and process version strings
- Generate a long, specially formatted version string that maximizes regex backtracking
- Transmit the payload to the vulnerable semver function
- Observe or repeat requests to maintain elevated CPU usage and service degradation
How to detect it
Review application and web server logs for requests containing unusually long version strings or entries showing extended processing times and elevated CPU on parsing threads; correlate with semver library calls if logging permits.
What your security team should do
- Prioritize package upgrades to the stated fixed versions across all affected environments
- Enforce strict input length validation on any version-string fields before parsing
- Monitor application CPU and request latency for anomalous spikes tied to version handling
The record
The semver package before 4.3.2 for Node.js allows attackers to cause a denial of service (CPU consumption) via a long version string, aka a "regular expression denial of service (ReDoS)."
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | semver | 0 | 4.3.2 |
| npm | semver | 1.0.4 | 4.3.2 |
| Debian:10 | node-semver | 0 | 5.3.0-1 |
| Debian:11 | node-semver | 0 | 5.3.0-1 |
| Debian:12 | node-semver | 0 | 5.3.0-1 |
| Debian:13 | node-semver | 0 | 5.3.0-1 |
| Ubuntu:18.04:LTS | node-semver | 0 | 5.4.1-1 |
| Ubuntu:Pro:14.04:LTS | node-semver | 0 | 2.1.0-2ubuntu0.0.1~esm1 |
| Ubuntu:Pro:16.04:LTS | node-semver | 0 | 2.1.0-2ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2026-41983 Null pointer dereference vulnerability in the browser module. Impact: Successful… CWE-399
- CVE-2015-9252 An issue was discovered in QPDF before 7.0.0. CWE-399
- CVE-2012-0881 Apache Xerces2 Java Parser before 2.12.0 allows remote attackers to cause a denial of… CWE-399
- CVE-2015-7944 The RESTful control interface (aka RAPI or ganeti-rapi) in Ganeti before 2.9.7, 2.10.x… CWE-399
- CVE-2015-8858 The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of… CWE-399
- CVE-2016-9312 ntpd in NTP before 4.2.8p9, when running on Windows, allows remote attackers to cause a… CWE-399
- CVE-2016-8826 All versions of NVIDIA GPU Display Driver contain a vulnerability in the kernel mode… CWE-399
- CVE-2016-8858 The kex_input_kexinit function in kex.c in OpenSSH 6.x and 7.x through 7.3 allows remote… CWE-399