CVE-2025-55130
npm vulnerability analysis and mitigation

Overview

CVE-2025-55130 is a file system permission bypass vulnerability in Node.js's experimental Permissions model, allowing attackers to escape --allow-fs-read and --allow-fs-write restrictions using crafted relative symlink paths. Disclosed on January 20, 2026, it affects Node.js v20.0.0–20.19.x, v22.0.0–22.21.x, v24.0.0–24.12.x, and v25.0.0–25.2.x. The vulnerability was reported by researcher 'natann' and fixed by RafaelGSS, and was publicly announced as part of the January 13, 2026 Node.js security release (Node.js Advisory). NVD assigns a CVSS v3.1 base score of 9.1 (Critical), while the CNA (HackerOne) scored it 7.1 (High) with a local attack vector (Red Hat CVE).

Technical details

The root cause is improper preservation of permissions (CWE-281) and authentication bypass by alternate name (CWE-289) within Node.js's permission model. When a script is granted access only to the current working directory via --allow-fs-read or --allow-fs-write, an attacker can craft a chain of relative directory traversals and symbolic links that resolve to paths outside the permitted boundary — effectively escaping the sandbox without triggering the permission check. The permission model fails to fully resolve and validate symlink targets before granting access, allowing a malicious or compromised script to read or write arbitrary files on the system. A public proof-of-concept exploit demonstrating this technique is available on GitHub (PoC GitHub). A detailed technical write-up describing the symlink chaining technique has also been published (InfoSec Writeups).

Impact

Successful exploitation allows an unauthenticated attacker (or a malicious script running within a Node.js process) to read or write arbitrary files on the host system, bypassing the isolation guarantees of the Node.js permission model. This can lead to exposure of sensitive files such as credentials, private keys, or configuration data (confidentiality impact), as well as unauthorized modification of files (integrity impact). Availability is not directly impacted by this vulnerability. In environments where Node.js applications process untrusted input or run third-party scripts under the permission model, exploitation could facilitate lateral movement or full system compromise (Node.js Advisory, Red Hat CVE).

Exploitation steps

  1. Identify target: Confirm the target Node.js application is running with the permission model enabled (e.g., node --allow-fs-read=. script.js), restricting file system access to a specific directory such as the current working directory.
  2. Craft symlink chain: Within the allowed directory, create a series of relative symbolic links that chain directory traversals — for example, creating a symlink allowed_dir/link -> ../../../etc — so that following the symlink resolves to a path outside the permitted boundary.
  3. Access restricted path: From within the script, perform a file read or write operation using the crafted relative symlink path (e.g., fs.readFileSync('./link/passwd')). The permission model evaluates the path before symlink resolution, granting access based on the apparent (allowed) path.
  4. Exfiltrate or modify data: With arbitrary file read/write access achieved, read sensitive files (e.g., /etc/passwd, application secrets, private keys) or modify system files to escalate privileges or establish persistence (Node.js Advisory, PoC GitHub).

Indicators of compromise

  • File System: Presence of unexpected symbolic links within directories that are granted Node.js permission model access; symlinks pointing to paths outside the intended allowed directory (e.g., ../../../etc, /root, /home).
  • Logs: Node.js application logs showing file access to paths outside the expected working directory; OS-level audit logs (e.g., auditd) recording file reads/writes to sensitive paths initiated by the Node.js process.
  • Process: Node.js process (node) accessing files such as /etc/passwd, /etc/shadow, SSH keys, or application credential files that are outside the declared --allow-fs-read or --allow-fs-write scope.
  • Network: Unexpected outbound connections from the Node.js process following file access, potentially indicating data exfiltration after reading sensitive credentials.

Mitigation and workarounds

Upgrade Node.js to the patched versions immediately: v20.20.0, v22.22.0, v24.13.0, or v25.3.0 (Node.js Advisory). Red Hat Enterprise Linux users should apply the relevant errata (RHSA-2026:1842, RHSA-2026:1843, RHSA-2026:2420–2422, RHSA-2026:2767–2768, RHSA-2026:2781–2783, and others) (Red Hat Bugzilla). IBM product users (Instana Observability, Cloud Pak for Automation, watsonx Orchestrate) should apply the corresponding IBM security updates. As a short-term workaround, avoid relying on the Node.js permission model as a security boundary for untrusted scripts, or restrict the execution environment using OS-level controls (e.g., containers, chroot, seccomp) until patching is complete. Oracle products incorporating Node.js should apply the April 2026 Critical Patch Update (Oracle CPU).

Community reactions

The Node.js security release addressing CVE-2025-55130 received broad coverage from security news outlets including The Hacker News, GBHackers, CyberSecurityNews, and SecurityOnline, with several articles highlighting the critical CVSS score and the permission model bypass nature of the flaw (Node.js Advisory). The German BSI (Federal Office for Information Security) also issued an advisory noting the availability of updates. A detailed technical write-up titled 'Breaking the Box: Bypassing Node.js Filesystem Permissions via Symlinks' was published on Medium/InfoSec Writeups and shared on Reddit's InfoSecWriteups community, generating community discussion. Endor Labs published a multi-vulnerability analysis covering this and other flaws fixed in the same release batch.

Additional resources


SourceThis report was generated using AI

Related npm vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-14257HIGH7.5
  • JavaScript logoJavaScript
  • lerna
NoYesJul 23, 2026
CVE-2026-48815HIGH7.5
  • JavaScript logoJavaScript
  • nodejs24
NoYesJul 14, 2026
CVE-2026-48816MEDIUM6.5
  • JavaScript logoJavaScript
  • @sigstore/verify
NoYesJul 14, 2026
CVE-2026-48758MEDIUM5.4
  • JavaScript logoJavaScript
  • @sigstore/core
NoYesJul 14, 2026
CVE-2026-59875MEDIUM5.3
  • JavaScript logoJavaScript
  • grafana-cloudwatch
NoYesJul 08, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management