CVE-2026-48935: Node.js Permission API File Metadata Bypass
Node.js has a permission model that allows administrators to restrict file system access using flags like `--allow-fs-read` to declare read-only paths. A flaw in how this Permission API enforces those restrictions lets a local user with low privileges modify file metadata—such as permissions, timestamps, and ownership—on paths that should be read-only. This bypasses the intended security boundary and could allow an unprivileged process to alter files it should not be able to touch.
Source data · NVD / CISA · public domain
- CVSS
- 3.0 · 3.3 LOW · CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
- Weaknesses (CWE)
- CWE-276
- Affected products
- 3 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-06-26
NVD description (verbatim)
A flaw in Node.js Permission API can cause a file metadata to be modified even on a path that was set as read-only with e.g. `--allow-fs-read`. This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js 26**.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-48935 is an improper permissions enforcement issue in Node.js affecting versions 22, 24, and 26. The Permission API's read-only restrictions, configured via command-line flags such as `--allow-fs-read`, fail to prevent metadata modification operations on protected paths. The vulnerability stems from incomplete validation of file system operations against declared access policies, allowing a local process with limited privileges to invoke system calls or Node.js APIs that modify file attributes without triggering the expected permission denial. The attack surface is constrained to local execution contexts and requires some form of code execution within the Node.js process or a subprocess.
Business impact
Organizations relying on Node.js Permission API to enforce least-privilege isolation between sandboxed application components face degraded security controls. In multi-tenant environments or containerized deployments where Node.js runs untrusted code under restricted permissions, this flaw could allow a compromised module or script to tamper with critical file metadata—potentially causing denial of service, privilege escalation follow-ups, or data integrity violations. The impact is greatest in environments that have adopted Permission API as a core security boundary.
Affected systems
Node.js 22, 24, and 26 across all supported platforms (Linux, macOS, Windows) are affected. Any application or service that spawns Node.js processes with Permission API restrictions—particularly those using `--allow-fs-read`, `--allow-fs-write`, or related flags to enforce file system sandboxing—should be considered at risk. Environments running older, unsupported Node.js versions (20 and earlier) are unaffected by this specific flaw.
Exploitability
Exploitation requires local code execution within or alongside the Node.js process; remote exploitation is not possible. An attacker must either be running code inside the restricted Node.js context or be able to interact with a privileged process running Node.js. The attack does not require user interaction or special system configuration beyond a basic Node.js deployment with Permission API flags enabled. Once code execution is achieved, the Permission API bypass is straightforward to trigger.
Remediation
Update Node.js to patched versions that correct the Permission API enforcement logic. Verify the availability of security updates across your supported release lines (22, 24, 26). Until patches are available and deployed, audit your use of Permission API flags; if they are not critical to your threat model, consider whether the sandboxing they provide justifies the operational overhead. For multi-tenant or untrusted-code scenarios, implement additional OS-level isolation mechanisms (containerization, seccomp, AppArmor, SELinux) rather than relying solely on Node.js Permission API.
Patch guidance
Check the Node.js security advisories and release notes for patched versions of Node.js 22, 24, and 26. Patch versions should be released through the standard Node.js release channels. Apply patches in a staged manner, testing in non-production environments first, especially if your application relies on Permission API flags for security enforcement. Coordinate patching across all Node.js instances in your infrastructure, including development, staging, and production systems.
Detection guidance
Monitor for unexpected file metadata modification operations (chmod, chown, utimes) on paths that should be protected by Permission API restrictions. Enable audit logging at the OS level (auditd on Linux) to capture file system operations and correlate them with Node.js process activity. Review application logs for Permission API denials or warnings. Conduct code reviews of any recent changes to permission-related flags or sandboxing configurations. Test your Permission API policies in a controlled lab environment to confirm they are functioning as intended.
Why prioritize this
Although the CVSS score is LOW (3.3) due to the local-only attack vector and limited impact scope, the vulnerability warrants prompt attention because it directly undermines a security control that organizations have deliberately implemented. The Permission API is typically adopted only when sandboxing is a business or security requirement; any bypass of that control should be treated as a control-effectiveness issue rather than a low-priority bug. Organizations without Permission API in use can deprioritize, but those relying on it should patch within their standard update windows.
Risk score, explained
The CVSS 3.0 score of 3.3 reflects a Low severity rating driven by the local attack vector (AV:L), low complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), and limited impact—integrity is affected (I:L) but not confidentiality or availability. The score correctly captures that an attacker already needs local code execution capability. However, in risk-contextualization terms, the actual business risk to organizations that have specifically enabled Permission API for security isolation is materially higher than the base CVSS number suggests, because the flaw breaks an intentional, evaluated security boundary.
Frequently asked questions
Does this affect Node.js versions 18 or 20?
No. This vulnerability is specific to Node.js 22, 24, and 26. Older supported versions (18, 20) and unsupported versions below 18 are not affected by this particular flaw.
Can this be exploited remotely?
No. Exploitation requires local code execution. An attacker must already be able to run code on the system or within the Node.js process. Remote network-based attacks are not possible.
If I'm not using Permission API flags, am I at risk?
No. The vulnerability only affects Node.js processes that have been launched with Permission API restrictions enabled (e.g., --allow-fs-read, --allow-fs-write). If you are not using these flags, this vulnerability does not impact your security posture, though you should still keep Node.js up to date for other security and stability reasons.
What is the Permission API and why would I use it?
The Node.js Permission API allows administrators to restrict what file system, network, and worker operations a Node.js process can perform. It is used to enforce least-privilege execution when running untrusted or third-party code—for example, plugin systems, sandboxed user scripts, or containerized microservices. It provides a runtime defense layer without requiring OS-level tools.
This analysis is based on CVE-2026-48935 and publicly available information current as of the publication date. Patch version numbers and specific remediation steps should be verified against official Node.js security advisories and vendor documentation. Organizations should conduct internal risk assessments and testing before deploying patches. This summary does not constitute professional security advice; consult your security team or a qualified security consultant for decisions specific to your environment. Source: NVD (public-domain), retrieved 2026-08-04. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-12823LOWBrowserbase Skills Permissions Misconfiguration (Local Information Disclosure)
- CVE-2026-48190LOWOTRS Permission Bypass – CMDB CI Data Disclosure
- CVE-2026-48191LOWOTRS STORM Metadata Disclosure via Incorrect Permissions
- CVE-2026-11931MEDIUMKiro IDE Authentication Token Cache Exposure (Local Privilege Escalation)
- CVE-2026-48725HIGHWarp Terminal Clipboard Access Vulnerability
- CVE-2026-49157HIGHApache ActiveMQ Jolokia Authorization Bypass Allows Privilege Escalation
- CVE-2026-49237HIGHMultipass macOS Privilege Escalation via Unprotected Auxiliary Binaries
- CVE-2026-50255MEDIUMOptical Disc Archive Software Privilege Escalation Vulnerability