CVE-2025-23084
NoneCVSS
—
EPSS
1.6%
Published
Jan 28, 2025
CISA due date
—
Cloudanix analysis
On Windows computers, some Node.js programs could let someone reach files they should not be able to access because of how folder paths are combined.
- Exploitation
- Other
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Node.js path.join on Windows fails to treat drive names (e.g., C:) as absolute, causing a path that appears relative to be resolved against the filesystem root instead of the current working directory.
Why it matters to the business
Windows applications using Node.js may expose files outside intended directories, increasing risk of data disclosure or tampering on affected systems; low EPSS and lack of KEV listing indicate limited observed exploitation despite 621 days since publication.
How an attack unfolds
An attacker supplies a crafted string containing a drive letter to path.join; because drive names are not handled specially, the resulting path resolves to the root of that drive, allowing traversal to sensitive files when the result is used in file operations.
How to fix it
Upgrade nodejs/node to commit e6c7018aa5db77c2cb720c5662eab12ff3320bf4 or later; rebuild and redeploy affected applications after the update.
How to confirm the fix worked
Confirm the installed Node.js binary reports a version containing commit e6c7018aa5db77c2cb720c5662eab12ff3320bf4; test path.join behavior with drive-letter inputs to verify root resolution no longer occurs.
Typical attack path
- Identify a Node.js application on Windows that passes attacker-controlled input to path.join
- Craft input containing a drive letter followed by path separators to force root resolution
- Trigger the vulnerable code path so the joined path is used in fs operations
- Read or write files outside the intended application directory
How to detect it
Search web server and application logs for path.join results or fs calls containing unexpected drive-letter roots; inspect audit trails for file accesses outside documented application directories.
What your security team should do
- Apply the fixed commit to all Windows Node.js deployments within standard change windows
- Review application code that concatenates paths with user input and replace path.join calls where possible with path.resolve or explicit normalization
- Monitor for any new EPSS increases or exploit publications given the long public disclosure window
The record
A vulnerability has been identified in Node.js, specifically affecting the handling of drive names in the Windows environment. Certain Node.js functions do not treat drive names as special on Windows. As a result, although Node.js assumes a relative path, it actually refers to the root directory. On Windows, a path that does not start with the file separator is treated as relative to the current directory. This vulnerability affects Windows users of `path.join` API.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.22 | nodejs | 0 | 22.13.1-r0 |
| Bitnami | node | 0 | 18.20.6 |
| Bitnami | node-min | 0 | 18.20.6 |
| Chainguard | nodejs-16 | 0 | 16.20.2-r16 |
| Chainguard | nodejs-16-doc | 0 | 16.20.2-r16 |
| Chainguard | nodejs-21 | 0 | 21.7.3-r13 |
| Chainguard | nodejs-21-doc | 0 | 21.7.3-r13 |
| Ubuntu:20.04:LTS | nodejs | 0 | No fix |
| Ubuntu:22.04:LTS | nodejs | 0 | No fix |
| Ubuntu:24.04:LTS | nodejs | 0 | No fix |
| Ubuntu:24.10 | nodejs | 0 | No fix |
| Ubuntu:25.04 | nodejs | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | nodejs | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | nodejs | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | nodejs | 0 | No fix |
| Wolfi | nodejs-16 | 0 | 16.20.2-r16 |
| Wolfi | nodejs-16-doc | 0 | 16.20.2-r16 |
| Wolfi | nodejs-21 | 0 | 21.7.3-r13 |
| Wolfi | nodejs-21-doc | 0 | 21.7.3-r13 |
Related vulnerabilities
- CVE-2025-23085 A memory leak could occur when a remote peer abruptly closes the socket without sending a… Also affects nodejs
- CVE-2025-23083 With the aid of the diagnostics_channel utility, an event can be hooked into whenever a… Also affects nodejs
- CVE-2025-22150 Undici is an HTTP/1.1 client. Also affects nodejs
- CVE-2024-37372 The Permission Model assumes that any path starting with two backslashes \ has a… Also affects nodejs
- CVE-2023-39333 Maliciously crafted export names in an imported WebAssembly module can inject JavaScript… Also affects nodejs
- CVE-2024-36137 A vulnerability has been identified in Node.js, affecting users of the experimental… Also affects nodejs
- CVE-2024-36138 Bypass incomplete fix of CVE-2024-27980, that arises from improper handling of batch… Also affects nodejs
- CVE-2024-22018 A vulnerability has been identified in Node.js, affecting users of the experimental… Also affects nodejs