CVE-2026-106073
Low · 3.3CVSS
3.3
EPSS
0.3%
Published
Oct 23, 2026
CISA due date
—
Cloudanix analysis
A bug in Node.js lets code that should only see certain files peek at the names and locations of other files on the system.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The Node.js permission model omits read permission enforcement for fs.realpathSync, allowing resolution of paths, symlink targets, and existence checks outside directories granted via --allow-fs-read.
Why it matters to the business
Attackers with the ability to run code under a restricted permission model can obtain limited filesystem layout information, increasing the chance of further unauthorized access or targeted attacks on Node.js deployments.
How an attack unfolds
An attacker supplies or influences JavaScript that executes under the --permission flag with narrow --allow-fs-read grants, then invokes fs.realpathSync on arbitrary paths to discover files, follow symlinks, and map the filesystem without triggering permission denials.
How to fix it
Upgrade Node.js 22.x, 24.x, and 26.x installations to the versions that restore permission checks on fs.realpathSync; until patches are available, avoid running untrusted code under the permission model or disable the feature for high-risk workloads.
How to confirm the fix worked
Confirm the installed Node.js version contains the permission-model fix for fs.realpathSync, then test that calls to the function on unauthorized paths produce the expected permission-denied behavior under --permission.
Typical attack path
- Obtain or inject code execution in a Node.js process started with --permission and restrictive --allow-fs-read flags
- Call fs.realpathSync repeatedly against candidate paths outside the allowed set
- Observe return values or errors to confirm file existence and resolve symlinks
- Use discovered paths to plan subsequent attacks such as directory traversal or targeted file access
How to detect it
Search application and system logs for repeated fs.realpathSync calls that succeed on paths outside expected allow lists; correlate with process startup arguments containing --permission.
What your security team should do
- Prioritize patching all Node.js 22.x/24.x/26.x runtimes as soon as fixed builds are released
- Review any applications using the experimental permission model and restrict --allow-fs-read grants to the minimum necessary
- Monitor EPSS trend and re-evaluate exploit maturity within 30 days
The record
A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync()` without the required read permission checks. This is an incomplete fix of CVE-2026-21715, which only covered `fs.realpathSync.native()`. As a result, code running under `--permission` with restricted `--allow-fs-read` can still use `fs.realpathSync()` to check file existence, resolve symlink targets, and enumerate filesystem paths outside of permitted directories. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-115828 In Secret Server versions earlier than 12.3.1, Secret Server did not always validate the… CWE-284
- CVE-2026-119620 A vulnerability was determined in 37954679 cak-filemanagement-system up to… CWE-284
- CVE-2025-8574 The Database Cleaner plugin for WordPress is vulnerable to arbitrary table deletion in… CWE-284
- CVE-2026-61708 SOCFortress CoPilot focuses on providing a single pane of glass for all your security… CWE-284
- CVE-2026-75882 An improper access control vulnerability in ESET Endpoint Encryption and ESET Full Disk… CWE-284
- CVE-2026-59387 The Nginx routing configuration for Cloud Controller blocks unauthenticated access to… CWE-284
- CVE-2026-119317 On Linux, an authenticated, low-privileged Nessus user with scan-creation rights could… CWE-284
- CVE-2026-6877 ServiceNow has addressed a domain separation bypass security issue that was identified in… CWE-284