CVE-2026-21636

10.0 CRITICAL

📋 TL;DR

A critical vulnerability in Node.js v25's experimental permission model allows attacker-controlled inputs to bypass network restrictions and connect to arbitrary local Unix Domain Sockets. This breaks the intended security boundary, potentially enabling access to privileged local services. Only users of Node.js v25 with the experimental --permission flag enabled are affected.

💻 Affected Systems

Products:
  • Node.js
Versions: v25.x (specifically versions before the December 2025 security releases)
Operating Systems: Linux, macOS, Unix-like systems with UDS support
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when using the experimental --permission flag without proper network restrictions. The permission model itself is experimental in v25.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full privilege escalation leading to complete system compromise, data exfiltration, and persistent backdoor installation via access to privileged local services.

🟠

Likely Case

Unauthorized access to local services (databases, APIs, internal tools) leading to data exposure, service disruption, or limited code execution.

🟢

If Mitigated

Minimal impact if proper network segmentation, service isolation, and least privilege principles are already implemented.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires attacker-controlled input in the application and the --permission flag to be enabled. The vulnerability is straightforward to exploit once these conditions are met.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v25.x security releases from December 2025

Vendor Advisory: https://nodejs.org/en/blog/vulnerability/december-2025-security-releases

Restart Required: Yes

Instructions:

1. Check current Node.js version with 'node --version'. 2. If running v25.x, upgrade immediately to the latest v25 security release. 3. Update all Node.js applications and restart affected services.

🔧 Temporary Workarounds

Disable Permission Model

all

Remove the --permission flag from Node.js startup until patching is possible

Remove '--permission' from all Node.js startup scripts and configurations

Network Isolation

linux

Isolate Node.js applications from sensitive local services using network namespaces or containers

Use Docker containers with limited network access
Implement Linux network namespaces

🧯 If You Can't Patch

  • Disable the experimental permission model entirely by removing --permission flag
  • Implement strict input validation and sanitization for all URL and socketPath parameters

🔍 How to Verify

Check if Vulnerable:

Check if Node.js version is v25.x and the --permission flag is enabled in process arguments or configuration

Check Version:

node --version

Verify Fix Applied:

Verify Node.js version is updated to December 2025 security release and test that UDS connections respect network permissions

📡 Detection & Monitoring

Log Indicators:

  • Unexpected connections to local sockets
  • Permission model warnings or errors
  • Failed network restriction attempts

Network Indicators:

  • Unexpected UDS connections from Node.js processes
  • Local service access from unauthorized processes

SIEM Query:

process.name:"node" AND (command_line:"--permission" OR command_line:"uds")

🔗 References

📤 Share & Export