Skip to main content

Node.js CVE-2026-48935

| EUVDEUVD-2026-39608 LOW
Incorrect Default Permissions (CWE-276)
3.3
CVSS 3.0 · Vendor
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local low-privilege shell access
  2. Delivery
    Target Node.js 26.x process using --experimental-permission
  3. Exploit
    Invoke FileHandle.utimes() on restricted file path
  4. Execution
    Permission model check absent for this method
  5. Impact
    Modify file timestamps outside permitted write scope

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Default permission hardening
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following: (1) Node.js 26.x prior to v26.3.1 must be installed; (2) the experimental permission model must be explicitly enabled at process startup via the --experimental-permission CLI flag - this is NOT the default Node.js configuration; (3) the attacker must have local system access with at least low-privilege credentials (PR:L per the CVSS vector). The impact is strictly limited to modifying file timestamps (utimes) - file content, network resources, and process state are unaffected (C:N/A:N). Deployments that do not use --experimental-permission are entirely unaffected regardless of Node.js version. The experimental nature of the permission model means that the realistic exploitable population is a small subset of Node.js deployments.

Impact

CVSS 3.3 (Low) with vector AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N accurately reflects constrained real-world risk. The local attack vector (AV:L) and requirement for at least low-privilege credentials (PR:L) immediately bound the threat surface to authenticated local actors. The integrity impact is narrow - limited to file timestamp manipulation, not content modification - with no confidentiality or availability impact (C:N/A:N). Critically, the permission model must be explicitly opted into via --experimental-permission, which is not the default Node.js runtime configuration; deployments not using this experimental feature are entirely unaffected. No CISA KEV listing exists, no POC code is publicly identified, and EPSS data is unavailable given this is a pre-NVD disclosure. The 'Privilege Escalation' tag in the intelligence data is potentially misleading - this is more accurately a permission-model sandbox bypass for a narrow filesystem operation rather than a classical privilege escalation. Real-world priority is low except for environments deliberately relying on Node.js's experimental permission sandboxing as a security control.

Exploit ScenarioDerived

A local attacker with low-privilege credentials on a system running Node.js 26.x with --experimental-permission enabled writes a short script invoking FileHandle.utimes() targeting a sensitive file path outside their permitted write scope. The permission model fails to reject the call, allowing the attacker to alter the file's access and modification timestamps - potentially covering tracks or defeating timestamp-based integrity monitoring. No public POC code has been identified; exploitation requires intentional knowledge of the FileHandle API and the affected Node.js configuration.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 26, 2026

Node.js permission model bypass via FileHandle.utimes() allows local low-privilege users to modify file timestamps on paths outside their permitted write scope. Affecting Node.js 26.x before v26.3.1, this flaw is only exploitable when the experimental permission model is explicitly enabled via --experimental-permission, substantially limiting exposure. No public exploit code or active exploitation has been identified at time of analysis, and the vendor-released patch (v26.3.1) is confirmed available as of 2026-06-18.

RemediationAI

Upgrade Node.js to version 26.3.1 or later; this is the vendor-confirmed patched release per https://github.com/nodejs/node/releases/tag/v26.3.1 and https://nodejs.org/en/blog/vulnerability/june-2026-security-releases. The fix authored by RafaelGSS explicitly disables FileHandle.utimes() when the permission model is active. As a compensating control prior to patching, avoid relying on Node.js's --experimental-permission flag as a security boundary for timestamp-sensitive files; instead enforce OS-level file permissions (chmod/chown) which remain unaffected by this bypass. Note that the permission model is experimental and not enabled by default, so deployments not using --experimental-permission require no remediation action for this specific CVE.

Affected VersionsENISA

Node 24.16.0 ≤24.16.0
Node 26.3.0 ≤26.3.0
Node 22.22.3 ≤22.22.3

Affected Packages

euvd node no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Node.js includes an experimental permission model, activated via the --experimental-permission CLI flag, designed to sandbox filesystem, network, and process access for running scripts. The fs/promises API exposes FileHandle.utimes(), which modifies the access and modification timestamps of an open file descriptor. CVE-2026-48935 (rated Low by the Node.js team) reveals that the permission model's write-scope enforcement did not gate FileHandle.utimes() calls, allowing this specific syscall to bypass the sandbox. CWE-276 (Incorrect Default Permissions) captures the root cause: an operation with potential integrity impact was omitted from the permission model's access-control surface. The fix, authored by RafaelGSS in the Node.js 26.x Current channel, explicitly disables FileHandle.utimes() when the permission model is active.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CNA) PRIMARY 3.3 LOW
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.3 LOW

Local-only exploitation (AV:L) requiring low-privilege credentials (PR:L); impact strictly limited to file timestamp modification (I:L) with no content, confidentiality, or availability effect.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CNA).

CVSS VectorVendor

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

2
CVSS changed
Jun 26, 2026 - 02:22 NVD
3.3 (LOW)
CVE Published
Jun 18, 2026 - 04:37 github-releases
UNKNOWN (no severity yet)

Description PRE-NVD

Disclosed via GitHub release of nodejs/node. NVD scoring and full description are pending.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
High
widely-used JavaScript runtime with major enterprise and cloud footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy