Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local low-privilege access required to reach the dev-only abstract socket; high confidentiality impact from arbitrary file read; no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Nuxt 4.0.0 before 4.4.7 and 3.18.0 before 3.21.7, when running the development server (nuxt dev) on Linux, binds the vite-node IPC server to an abstract-namespace Unix socket without permission restrictions, allowing local users to enumerate and connect. Unprivileged co-resident users can exploit the unprotected module request handler to read arbitrary files such as .env and SSH keys through the SSR plugin pipeline. Production builds are unaffected, as the IPC server runs only in development.
AnalysisAI
Nuxt's development server on Linux exposes an unprotected vite-node IPC server via a Linux abstract-namespace Unix socket, enabling unprivileged co-resident users to read arbitrary files - including .env secrets and SSH private keys - through the SSR module pipeline. Affected are Nuxt 4.0.0 through 4.4.6 and Nuxt 3.18.0 through 3.21.6 when running nuxt dev on Linux with Node.js 20+, outside Docker or StackBlitz. No public exploit has been identified at time of analysis, but exploitation demands only a local shell account and basic Unix socket programming knowledge; production builds are entirely unaffected.
Technical ContextAI
The root cause maps to CWE-276 (Incorrect Default Permissions): on Linux with Node.js 20+, Nuxt's internal vite-node IPC server was bound to a Linux abstract-namespace Unix socket (e.g., \0nuxt-vite-node-<pid>-<ts>.sock). Abstract-namespace sockets have no filesystem inode and therefore carry no permission bits; any local process that can read /proc/net/unix can enumerate and connect to them without restriction. The IPC server performs no peer-credential check and no shared-secret handshake before dispatching requests. The module request type passes a moduleId field directly into Vite's SSR fetchModule(), which bypasses Vite's HTTP-layer server.fs.allow deny-list, enabling traversal to arbitrary paths such as /home/dev/project/.env?raw or /home/dev/.ssh/id_rsa?raw. Affected CPE is cpe:2.3:a:nuxt:nuxt:*:*:*:*:*:*:*:* for both the 3.x and 4.x branches. The fix (commits 1f9f4767 and c293bf95) eliminates the abstract-namespace branch entirely, replacing it with a filesystem socket under a mkdtemp-created directory chmod 0700, with a subsequent chmod 0600 on the socket file and a tight umask wrap during listen() to close the bind-to-chmod race window.
RemediationAI
The definitive fix is to upgrade to nuxt@4.4.7 (for 4.x users) or nuxt@3.21.7 (for 3.x users) via npm install nuxt@4.4.7 or npm install nuxt@3.21.7. Both patch versions are confirmed by the GitHub Security Advisory GHSA-534h-c3cw-v3h9 and the referenced patch commits (https://github.com/nuxt/nuxt/commit/1f9f4767a8725104da9bee872bb8d35246f25ae5 for 4.x, https://github.com/nuxt/nuxt/commit/c293bf9503ccb3bc9559bff4a1f592f99063c9ea for 3.x). If an immediate upgrade is not feasible, run nuxt dev inside a per-job container or Docker environment - Docker already triggered the safe filesystem-socket path in vulnerable versions, so this is an effective workaround with minimal operational overhead. Using unshare -U to bind the dev process to a single-user Linux namespace also prevents other local users from reaching the socket. Applying hidepid=2 to /proc mount options limits enumeration of /proc/net/unix but is only a partial mitigation: it reduces socket discoverability but does not eliminate the underlying access-control absence if the socket is otherwise known. Do not rely on network-layer controls for this vector as it is a local Unix socket issue.
Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se
Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1
Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS
Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t
Route-rule middleware bypass in Nuxt 3.11.0-3.21.6 and 4.0.0-4.4.6 allows remote attackers to evade routeRules-defined p
Nuxt is an open-source web development framework for Vue.js. Rated high severity (CVSS 7.5), this vulnerability is remot
Nuxt is an open-source web development framework for Vue.js. Rated low severity (CVSS 3.1), this vulnerability is remote
Information disclosure in Nuxt's development server exposes the project's absolute filesystem root path and a persistent
Same weakness CWE-276 – Incorrect Default Permissions
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38436
GHSA-2x6f-57hp-86fx