---
id: "CVE-2026-106073"
kind: "vulnerability"
aliases: ["CVE-2026-106073"]
title: "Node.js: Permission Model lets fs.realpathSync probe paths outside allowed reads"
severity: "low"
cvss: 3.3
epss: 0.00159
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["node.js", "poc-public", "runtime", "self-hosted"]
not_affected_if: ["default-config", "no-permission-model"]
published_at: "2026-10-23T17:17:20+00:00"
first_seen_at: "2026-10-23T21:57:34+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-106073", "first_seen_at": "2026-10-23T21:57:34+00:00"}, {"source": "github-poc", "url": "https://github.com/CompleteTech-LLC/node-cve-2026-106073-check", "first_seen_at": "2026-10-23T23:55:02+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-106073", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# Node.js: Permission Model lets fs.realpathSync probe paths outside allowed reads

Node.js's Permission Model does not apply read checks to fs.realpathSync(), so code run with --permission and a restricted --allow-fs-read can still check whether files exist, resolve symlink targets and list paths outside its allowed directories. This is an incomplete fix of CVE-2026-21715, which only covered fs.realpathSync.native().

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `node --version` and compare against the fixed releases listed in the advisory; affected lines are 22.x, 24.x and 26.x.
- Look for `--permission` or `--experimental-permission` together with `--allow-fs-read` in process start scripts, Dockerfiles or service units.

## Fix

- Upgrade Node.js to a patched release for your line (version numbers unknown from the sources; check the Node.js security release notes).
- Until patched, do not rely on --allow-fs-read alone to confine untrusted code that can call fs.realpathSync.

## Timeline

- 2026-10-23T21:57:34+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-106073
- 2026-10-23T23:55:02+00:00 github-poc https://github.com/CompleteTech-LLC/node-cve-2026-106073-check
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-106073

## Documents

- [poc] CompleteTech-LLC/node-cve-2026-106073-check https://github.com/CompleteTech-LLC/node-cve-2026-106073-check

## From the sources

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**.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
