Description
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**.
Published: 2026-10-23
Score: 3.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: Confidentiality Exposure via Unauthorized Path Access
Action: Patch
AI Analysis

Impact

Node.js’s permission model is designed to restrict filesystem access when the process runs with the --permission flag. The flaw leaves fs.realpathSync() without the required read permission checks, allowing code executed under the --permission flag with a restricted --allow-fs-read setting to resolve symbolic links, check for the existence of files, and enumerate directories outside the permitted areas. The type of weakness is a missing access control (CWE-284); based on the description, it is inferred that this breach can expose file names and directory structures, but no remote code execution is supported.

Affected Systems

The vulnerability affects Node.js 26.x, 24.x, and 22.x. All compatible binaries are distributed by the Node.js project, and any application running these versions on any operating system where Node.js is installed is exposed when executed with the permission flag.

Risk and Exploitability

The CVSS score of 3.3 indicates a low baseline severity, and the EPSS score is < 1%, implying a very low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Based on the description, it is inferred that attackers would need to run Node.js code under the --permission flag with a restricted --allow-fs-read setting. The exploitation yields filesystem enumeration and does not allow arbitrary code execution. The overall risk is moderate for systems that run processes with the permission flag enabled but is mitigated if the flag is unused.

Generated by OpenCVE AI on October 26, 2026 at 14:24 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update Node.js to a version that includes the complete realpathSync permission fix.
  • If an immediate upgrade is not possible, remove the --permission flag or configure --allow-fs-read to grant no read permissions, thereby preventing the vulnerable function from revealing sensitive paths.
  • Avoid calling fs.realpathSync() in code that runs under the --permission flag. Use alternative APIs that honor the permission model or perform explicit white‑listing of allowed paths before resolution.

Generated by OpenCVE AI on October 26, 2026 at 14:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 02 Nov 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 26 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Title Node.js Permission Model Exploit Allows Unsafe RealPath Traversal nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync()
Weaknesses CWE-425
References
Metrics threat_severity

None

cvssV3_1

{'score': 3.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}

threat_severity

Low


Fri, 23 Oct 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Nodejs
Nodejs nodejs
Vendors & Products Nodejs
Nodejs nodejs

Fri, 23 Oct 2026 18:15:00 +0000

Type Values Removed Values Added
Title Node.js Permission Model Exploit Allows Unsafe RealPath Traversal

Fri, 23 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Description 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**.
Weaknesses CWE-284
References
Metrics cvssV3_0

{'score': 3.3, 'vector': 'CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: hackerone

Published:

Updated: 2026-11-02T15:31:53.217Z

Reserved: 2026-10-06T15:00:00.655Z

Link: CVE-2026-106073

cve-icon Vulnrichment

Updated: 2026-11-02T15:31:00.607Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-23T17:17:20.343

Modified: 2026-11-02T16:17:25.350

Link: CVE-2026-106073

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-23T16:15:05Z

Links: CVE-2026-106073 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T14:30:13Z

Weaknesses
  • CWE-284

    Improper Access Control

  • CWE-425

    Direct Request ('Forced Browsing')