critical CVSS 9.1

CVE-2025-55130·Node.js vulnerability

A flaw in Node.js’s Permissions model allows attackers to bypass `--allow-fs-read` and `--allow-fs-write` restrictions using crafted relative symlink paths. By chaining directories and symlinks, a script granted access only to the current directory can escape the allowed path and read sensitive files. This breaks the expected isolation guarantees and enables arbitrary file read/write, leading to potential system compromise. This vulnerability affects users of the permission model on Node.js v20, v22, v24, and v25.

Severity
critical
Software
Node.js
Fixed in
25.3.0
Published
2026-01-20

Affected versions

From: 25.0.0

Until: 25.3.0

Fixed in: 25.3.0

How to fix this CVE

Node.js versions 25.0.0 through 25.3.0 contain a critical permission model bypass that allows scripts to escape filesystem restrictions through symlink manipulation. Immediately update to Node.js 25.3.0 or later, or downgrade to a stable LTS version (v22 or v20) if you cannot update immediately. Review your deployment configurations to ensure the permission model flags are being actively used, as this vulnerability only affects systems explicitly leveraging `--allow-fs-read` and `--allow-fs-write` restrictions.

sudo dnf update nodejs

Defensia detects this vulnerability

How to check if you are affected

  1. Step 1: Check the installed Node.js version by running: `node --version` or `nodejs --version` depending on your system configuration
  2. Step 2: Determine if permission model flags are active by examining process startup commands: `ps aux | grep node | grep -E 'allow-fs-(read|write)'`
  3. Step 3: Search application logs for symlink-related path traversal attempts: `grep -r 'EACCES\|Permission denied' /var/log/app/ | grep -i symlink`
  4. Step 4: Verify the patch by confirming the version is 25.3.0 or higher: `node --version` should show v25.3.0+ or a stable LTS version

FAQ

What is CVE-2025-55130?

CVE-2025-55130 is a critical permission model flaw in Node.js that enables attackers to circumvent filesystem access restrictions by crafting relative symlink paths that chain through directories. This allows scripts with limited read/write permissions to access files outside their intended scope, completely undermining the security isolation provided by the permission model.

Is CVE-2025-55130 being actively exploited?

No, this vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities catalog, and no public exploits have been disclosed. However, the simplicity of the exploitation technique (symlink path traversal) means defenders should prioritize patching proactively.

What versions of Node.js are affected by CVE-2025-55130?

Node.js versions 25.0.0 through 25.3.0 are affected. Additionally, the vulnerability impacts v20, v22, and v24 with the permission model enabled, though specific patch versions for those branches vary. Consult the official Node.js security release notes for LTS branch guidance.

How do I check if my server is vulnerable to CVE-2025-55130?

Run `node --version` to see your installed version. If it reports v25.0.0-v25.2.1 and you have process startup commands containing `--allow-fs-read` or `--allow-fs-write`, your system is vulnerable. LTS versions (v22, v20) require checking the patch level against Node.js official advisories.

Does Defensia detect CVE-2025-55130?

Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Node.js is installed on a monitored server, CVE-2025-55130 will appear in your dashboard with remediation steps.

Related Node.js CVEs

CVE-2026-21636CVSS 10A flaw in Node.js's permission model allows Unix Domain Socket (UDS) connections to bypass network restrictions when `--permission` is enabled. Even without `--allow-net`, attacker-controlled inputs (such as URLs or socketPath options) can connect to arbitrary local sockets via net, tls, or undici/fetch. This breaks the intended security boundary of the permission model and enables access to privileged local services, potentially leading to privilege escalation, data exposure, or local code execution. * The issue affects users of the Node.js permission model on version v25. In the moment of this vulnerability, network permissions (`--allow-net`) are still in the experimental phase.
CVE-2025-59464CVSS 7.5A memory leak in Node.js’s OpenSSL integration occurs when converting `X.509` certificate fields to UTF-8 without freeing the allocated buffer. When applications call `socket.getPeerCertificate(true)`, each certificate field leaks memory, allowing remote clients to trigger steady memory growth through repeated TLS connections. Over time this can lead to resource exhaustion and denial of service.
CVE-2025-59465CVSS 7.5A malformed `HTTP/2 HEADERS` frame with oversized, invalid `HPACK` data can cause Node.js to crash by triggering an unhandled `TLSSocket` error `ECONNRESET`. Instead of safely closing the connection, the process crashes, enabling a remote denial of service. This primarily affects applications that do not attach explicit error handlers to secure sockets, for example: ``` server.on('secureConnection', socket => { socket.on('error', err => { console.log(err) }) }) ```
CVE-2025-59466CVSS 7.5We have identified a bug in Node.js error handling where "Maximum call stack size exceeded" errors become uncatchable when `async_hooks.createHook()` is enabled. Instead of reaching `process.on('uncaughtException')`, the process terminates, making the crash unrecoverable. Applications that rely on `AsyncLocalStorage` (v22, v20) or `async_hooks.createHook()` (v24, v22, v20) become vulnerable to denial-of-service crashes triggered by deep recursion under specific conditions.
CVE-2026-21637CVSS 7.5A flaw in Node.js TLS error handling allows remote attackers to crash or exhaust resources of a TLS server when `pskCallback` or `ALPNCallback` are in use. Synchronous exceptions thrown during these callbacks bypass standard TLS error handling paths (tlsClientError and error), causing either immediate process termination or silent file descriptor leaks that eventually lead to denial of service. Because these callbacks process attacker-controlled input during the TLS handshake, a remote client can repeatedly trigger the issue. This vulnerability affects TLS servers using PSK or ALPN callbacks across Node.js versions where these callbacks throw without being safely wrapped.

References

Track CVEs across your fleet automatically

Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2025-55130. Free for 1 server.

Get started free