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: n/a
KEV: No
Impact: Confidentiality Exposure via Unauthorized Path Access
Action: Patch
AI Analysis

Impact

Node.js introduced a permission model that is intended to restrict file system access when the executable is run with the --permission flag. However, the enforcement around fs.realpathSync() is incomplete because the required read permissions are not verified. As a result, code executed under --permission with a restricted --allow-fs-read flag can unexpectedly call fs.realpathSync() to check for file existence, resolve symbolic links, and enumerate file system paths that lie outside of the designated directories. This breach of access control aligns with CWE-284 and can lead to unintended disclosure of file metadata or directory structures, but does not provide remote code execution capabilities.

Affected Systems

The vulnerability is present in Node.js versions 26.x, 24.x, and 22.x. All affected binaries are distributed by the Node.js project and affect applications that rely on these runtime versions on any operating system where Node.js is installed.

Risk and Exploitability

The CVSS score of 3.3 indicates a low baseline severity, and the EPSS score is not available, implying no current evidence of exploitation. The vulnerability is not listed in the CISA KEV catalog. Attackers would need to obtain a position to run Node.js code with the --permission flag and a restricted --allow-fs-read setting; this is typically a local privilege escalation or an attacker who can inject or execute code on a system running a vulnerable Node.js process. The exploitation only yields file system 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 23, 2026 at 17:46 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update Node.js to the latest supported release that contains the complete realpathSync permission fix (currently available in 27.x and later).
  • 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 honour the permission model or perform explicit white‑listing of allowed paths before resolution.

Generated by OpenCVE AI on October 23, 2026 at 17:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: hackerone

Published:

Updated: 2026-10-23T16:15:05.728Z

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

Link: CVE-2026-106073

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-106073

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T18:00:15Z

Weaknesses