Logo
Security changelog

Nuxt Security Changelog

Security-only timeline for Nuxt. This page excludes general release notes and lists only published vulnerability fixes with security impact, affected components, fixed versions, CVEs, and upstream advisory links where available.

Fixes21High/Critical9

Check an installed version

Enter a Nuxt version to show only security fixes whose affected-version range includes that version.

Showing all 21 security fixes.

nuxt-ghsa-7c4v-fwgw-9rf7 · 2026-08-07

Medium

Nuxt dev server discloses project root and workspace UUID via the Chrome DevTools workspace endpoint

Impact

When a Nuxt dev server is bound to a network-reachable interface (for example nuxt dev --host for on-device testing), the default-enabled Chrome DevTools workspace endpoint GET /.well-known/appspecific/com.chrome.devtools.json returns the absolute project root (workspace.root, i.e. rootDir) and a persistent per-project workspace UUID.

GHSA-rq7w-g337-39qq added a gate (isLocalDevRequest) intended to restrict this endpoint to local requests, but that gate is header-based: it trusts request m…

Affected versions
>= 4.4.7, < 4.5.1; >= 3.21.7, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
Not listed
CWE
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Workaround
Upgrade to a fixed release

CVE-2026-72744

nuxt-ghsa-hxvh-4h3w-prp9 · 2026-08-05

High

Nuxt route rules silently dropped for mixed-case paths, bypassing appMiddleware auth gates (incomplete fix for CVE-2026-53721)

Impact

Nuxt matches route rules case-insensitively by default (mirroring vue-router’s default sensitive: false routing). The fix for GHSA-mm7m-92g8-7m47 / CVE-2026-53721 lowercased the lookup path before matching route rules, but the route-rule keys compiled into the matcher were left verbatim. As a result, any route rule whose key contains an uppercase character (for example /Admin, /Dashboard/**, or the rules Nuxt derives from PascalCase/camelCase page files such as pages/Admin.vue) never matche…

Affected versions
>= 4.4.7, < 4.5.1; >= 3.21.7, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
8.2 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
CWE
CWE-178: Improper Handling of Case Sensitivity, CWE-863: Incorrect Authorization
Workaround
Upgrade to a fixed release

CVE-2026-71315

nuxt-ghsa-wm8w-6qjm-cv43 · 2026-08-05

High

Nuxt runtime payload cache discloses another user’s SSR data across users and to unauthenticated clients

Impact

When a page is covered by routeRules cache / swr / isr, Nuxt enables runtime payload extraction and serves /<page>/_payload.json. On affected versions the renderer stored the SSR payload in the shared cache:nuxt:payload storage under a path-only key (no cookie, authorization, or cache.varies dimension) and, on a later payload request, returned the cached entry before route middleware / page guards ran again.

As a result, once any authenticated user warms a protected, cached page, a sub…

Affected versions
>= 4.4.0, <= 4.5.0
Fixed in
4.5.1
CVSS
7.5 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CWE
CWE-524: Use of Cache Containing Sensitive Information, CWE-862: Missing Authorization
Workaround
Upgrade to a fixed release

CVE-2026-71316

nuxt-ghsa-9473-5f9j-94wq · 2026-08-05

High

Nuxt: Server-Side Remote Code Execution via Runtime Template Injection in Nuxt Server Island Props

Impact

Nuxt server islands accept props via the /__nuxt_island/ endpoint. When vue.runtimeCompiler: true is enabled (off by default) and the application has a server island component that forwards props into Vue’s dynamic component resolution (<component :is>, resolveDynamicComponent, or h()), an attacker can inject a template key into the island props to achieve server-side remote code execution in the Nitro process.

{ "as": { "template": "<attacker-controlled>" } }

Vue’s runtime tem…

Affected versions
>= 4.0.0, < 4.5.1; >= 3.4.0, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
8.1 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE
CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'), CWE-94: Improper Control of Generation of Code ('Code Injection')
Workaround
Upgrade to a fixed release

CVE-2026-71320

nuxt-ghsa-9pgf-384g-p7mv · 2026-08-05

High

Nuxt: Unauthenticated CPU exhaustion parsing and hashing the Nuxt island endpoint body before hash validation

Impact

The internal island renderer endpoint (/__nuxt_island/...) decodes and hashes attacker-controlled request input before it validates the URL-resident hash. An unauthenticated POST /__nuxt_island/<name>_<anything>.json with a large JSON body (for example ~4.6 MB / 150k keys) is fully read, destr-parsed, and run through ohash before the request is rejected with a 400. Because Nitro runs on a single event loop, this both wastes CPU on the doomed request and delays every concurrent request. A low re…

Affected versions
>= 4.0.0, < 4.5.1; >= 3.1.0, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
7.5 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE
CWE-407: Inefficient Algorithmic Complexity, CWE-770: Allocation of Resources Without Limits or Throttling
Workaround
Upgrade to a fixed release

CVE-2026-71321

nuxt-ghsa-hxcr-hm88-mpq6 · 2026-08-05

High

Nuxt: Unauthenticated out-of-memory crash via unbounded v-for expansion in island rendering

Impact

An unauthenticated attacker can crash a Nuxt server that renders any island / server component containing a v-for over a prop (for example v-for="n in count" or a <slot v-for>). Because the island URL hash is a non-secret digest of the request, the attacker can compute a valid hash for arbitrary props and send the iterated prop as a large integer. The server then expands the v-for to that many nodes during SSR, allocating memory proportional to the attacker’s number. Reporter figures: `count=80…

Affected versions
>= 4.0.0, < 4.5.1; >= 3.1.0, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
7.5 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE
CWE-400: Uncontrolled Resource Consumption, CWE-770: Allocation of Resources Without Limits or Throttling, CWE-789: Memory Allocation with Excessive Size Value, CWE-1284: Improper Validation of Specified Quantity in Input
Workaround
Upgrade to a fixed release

CVE-2026-71314

nuxt-ghsa-48hr-524c-v5w3 · 2026-08-05

Medium

Nuxt: Unauthorized Component Instantiation via Server Island Props

Impact

Nuxt server islands accept props via the /__nuxt_island/ endpoint. When an application has a server island component that forwards props directly into Vue’s dynamic component resolution (<component :is>, resolveDynamicComponent, or h()), an attacker can pass a plain string value (rather than a component definition) to instantiate any globally-registered Vue component or any native HTML element.

For example:

{ "as": "SomeGlobalComponent" }

…resolves and renders `SomeGlobalComponen…

Affected versions
>= 4.0.0, < 4.5.1; >= 3.1.0, < 3.21.10
Fixed in
3.21.10, 4.5.1
CVSS
4.8 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
CWE
CWE-20: Improper Input Validation
Workaround
Upgrade to a fixed release

CVE-2026-71318

nuxt-ghsa-m3q2-p4fw-w38m · 2026-06-16

Low

Cross-site scripting via <NoScript> slot content in Nuxt’s head components

Impact

Nuxt’s globally registered <NoScript> component (from @unhead/vue head components, re-exported by Nuxt) wrote its default-slot content to the innerHTML of the <noscript> head tag, bypassing the HTML escaping that {{ }} interpolation normally applies in Vue templates.

Applications that placed untrusted, attacker-controllable data inside a <NoScript> slot, for example:

<NoScript>{{ route.query.banner }}</NoScript>

would emit that value unescaped inside <noscript> in the server…

Affected versions
>= 4.0.0, < 4.4.7; < 3.21.7
Fixed in
3.21.7, 4.4.7
CVSS
Not listed
CWE
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Workaround
Upgrade to a fixed release

CVE-2026-56317

nuxt-ghsa-534h-c3cw-v3h9 · 2026-06-16

Medium

Nuxt dev server vite-node IPC socket is world-connectable on Linux

Impact

When running nuxt dev on Linux (Node.js 20+, outside Docker / StackBlitz), Nuxt’s internal vite-node IPC server binds to a Linux abstract-namespace Unix socket (\0nuxt-vite-node-<pid>-<ts>.sock). Abstract sockets have no filesystem inode and therefore no permission bits: any local UID on the host that can read /proc/net/unix can enumerate the socket and connect to it.

The IPC server does not perform any peer-credential or shared-secret check before dispatching requests. The module request type…

Affected versions
>= 4.0.0, < 4.4.7; >= 3.18.0, < 3.21.7
Fixed in
3.21.7, 4.4.7
CVSS
5.5 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
CWE
CWE-276: Incorrect Default Permissions
Workaround
Upgrade to a fixed release

View advisory

nuxt-ghsa-934w-87qh-qr26 · 2026-06-16

Medium

Nuxt: Reflected XSS in <NuxtLink> via unsanitised javascript: or data: URL

Summary

<NuxtLink> did not validate the URL scheme of values bound to its to or href props before rendering them into the href attribute of the underlying <a> element. When an application binds attacker-controlled input (a query parameter, a CMS field, a user-supplied profile URL) to <NuxtLink :to> or :href, the attacker can supply a javascript: or vbscript: URL that is reflected verbatim into the rendered markup. Clicking the link executes the supplied script in the origin of the Nuxt appli…

Affected versions
>= 4.0.0, < 4.4.7; >= 3.0.0, < 3.21.7
Fixed in
3.21.7, 4.4.7
CVSS
Not listed
CWE
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), CWE-83: Improper Neutralization of Script in Attributes in a Web Page
Workaround
Upgrade to a fixed release

CVE-2026-53722

nuxt-ghsa-mm7m-92g8-7m47 · 2026-06-16

High

Nuxt: Route-rule middleware bypass via case-sensitivity mismatch between vue-router and the routeRules matcher

Impact

Nuxt looks up routeRules for the current navigation by calling getRouteRules({ path: to.path }) from the page-router plugin and the no-pages router plugin. The compiled routeRules matcher (built on rou3) performs case-sensitive matching, while vue-router is configured with its default sensitive: false and matches paths case-insensitively.

The two routers therefore disagree on which rules apply to a given request path: vue-router still matches the page record for /Admin/dashboard, but the `r…

Affected versions
>= 4.0.0, < 4.4.7; >= 3.11.0, < 3.21.7
Fixed in
3.21.7, 4.4.7
CVSS
Not listed
CWE
CWE-178: Improper Handling of Case Sensitivity, CWE-863: Incorrect Authorization
Workaround
Upgrade to a fixed release

CVE-2026-53721

nuxt-ghsa-c9cv-mq2m-ppp3 · 2026-06-16

Medium

Nuxt: URL-handling weaknesses in navigateTo and reloadNuxtApp: SSR open redirect, client-side script execution via the open option, and protocol-relative bypass in reloadNuxtApp

Summary

Three weaknesses in Nuxt’s client-navigation URL handling, all reachable from documented public APIs (navigateTo and reloadNuxtApp):

  1. SSR open redirect in navigateTo via path-normalisation bypass. navigateTo decided whether a target was external by inspecting the raw input with hasProtocol(..., { acceptRelative: true }). Inputs such as /..//evil.com, /.//evil.com, /%2e%2e//evil.com, or /app/..//evil.com slipped past that check because they start with /, but WH…
Affected versions
>= 4.0.0, < 4.4.7; >= 3.5.0, < 3.21.7
Fixed in
3.21.7, 4.4.7
CVSS
6.1 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CWE
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
Workaround
Upgrade to a fixed release

CVE-2026-56326

nuxt-ghsa-rq7w-g337-39qq · 2026-06-15

Low

Nuxt: Dev server discloses project absolute path and persistent workspace UUID via /.well-known/appspecific/com.chrome.devtools.json

Summary

When running nuxt dev, Nuxt registers an unauthenticated route at /.well-known/appspecific/com.chrome.devtools.json that returns the absolute filesystem path of the project root and a per-project UUID persisted to node_modules/.cache/nuxt/chrome-workspace.json. The route is enabled by default via experimental.chromeDevtoolsProjectSettings: true.

The endpoint exists to let Chrome DevTools’ Workspace integration map sources to the developer’s local checkout. The handler is registered directly o…

Affected versions
>= 4.0.0-alpha.1, < 4.4.7
Fixed in
4.4.7
CVSS
Not listed
CWE
CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Workaround
Upgrade to a fixed release

View advisory

nuxt-ghsa-hg3f-28rg-4jxj · 2026-05-29

Medium

Nuxt’s route middleware is not enforced when rendering .server.vue pages via /__nuxt_island/page_*

Summary

When experimental.componentIslands is enabled (default in Nuxt 4), any .server.vue file under pages/ is automatically registered as a server island under the key page_<routeName> and exposed via the /__nuxt_island/:name endpoint. Until this fix, requests through that endpoint rendered the page component directly via the SSR renderer without instantiating Vue Router, which meant route middleware declared on the page (including definePageMeta({ middleware })) did not run.

For Nuxt applicati…

Affected versions
>= 3.11.0, <= 3.21.5; >= 4.0.0-alpha.1, <= 4.4.5
Fixed in
3.21.6, 4.4.6
CVSS
5.3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
CWE
CWE-284: Improper Access Control, CWE-288: Authentication Bypass Using an Alternate Path or Channel
Workaround
Upgrade to a fixed release

CVE-2026-47200

nuxt-ghsa-g8wj-3cr3-6w7v · 2026-05-19

Low

Nuxt: __nuxt_island endpoint does not bind responses to request props, enabling shared-cache poisoning

Summary

The /__nuxt_island/* endpoint accepts attacker-controlled props query/body parameters and renders any island component without verifying that the URL-resident hash (<Name>_<hashId>.json) was actually issued for those inputs by <NuxtIsland>. The hash is computed and embedded client-side but never validated server-side, so the same path can return materially different responses depending on the query.

Island components are documented as rendering independently of route context - page middleware…

Affected versions
>= 3.1.0, <= 3.21.5; >= 4.0.0-alpha.1, <= 4.4.5
Fixed in
3.21.6, 4.4.6
CVSS
5.4 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
CWE
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), CWE-349: Acceptance of Extraneous Untrusted Data With Trusted Data, CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
Workaround
Upgrade to a fixed release

CVE-2026-46342

nuxt-ghsa-fx6j-w5w5-h468 · 2026-05-19

Medium

Nuxt: Reflected XSS in navigateTo() external redirect

Summary

navigateTo() with external: true generates a server-side HTML redirect body containing a <meta http-equiv="refresh"> tag. The destination URL is only sanitized by replacing " with %22, leaving <, >, &, and ' unencoded. An attacker who can influence the URL passed to navigateTo(url, { external: true }) can break out of the content="…" attribute and inject arbitrary HTML/JavaScript that executes under the application’s origin.

This is a different root cause from CVE-2024-34343 (GHS…

Affected versions
>= 3.4.3, <= 3.21.5; >= 4.0.0-alpha.1, <= 4.4.5
Fixed in
3.21.6, 4.4.6
CVSS
5.4 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
CWE
CWE-83: Improper Neutralization of Script in Attributes in a Web Page
Workaround
Upgrade to a fixed release

CVE-2026-45669

nuxt-ghsa-p6jq-8vc4-79f6 · 2025-09-17

Low

Nuxt has Client-Side Path Traversal in Nuxt Island Payload Revival

Summary

A client-side path traversal vulnerability in Nuxt’s Island payload revival mechanism allowed attackers to manipulate client-side requests to different endpoints within the same application domain when specific prerendering conditions are met.

Technical Details

The vulnerability occurs in the client-side payload revival process (revive-payload.client.ts) where Nuxt Islands are automatically fetched when encountering serialized __nuxt_island objects. The issue affects the following flow:

  1. Du…
Affected versions
>= 3.6.0, < 3.19.0; >= 4.0.0, < 4.1.0
Fixed in
3.19.0, 4.1.0
CVSS
3.1 - CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
CWE
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Workaround
Upgrade to a fixed release

CVE-2025-59414

nuxt-ghsa-jvhm-gjrh-3h93 · 2025-03-19

High

Nuxt allows DOS via cache poisoning with payload rendering response

Summary

By sending a crafted HTTP request to a server behind an CDN, it is possible in some circumstances to poison the CDN cache and highly impacts the availability of a site.

It is possible to craft a request, such as https://mysite.com/?/_payload.json which will be rendered as JSON. If the CDN in front of a Nuxt site ignores the query string when determining whether to cache a route, then this JSON response could be served to future visitors to the site.

Impact

An attacker can perform this attack…

Affected versions
>= 3.0.0, < 3.16.0
Fixed in
3.16.0
CVSS
7.5 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE
CWE-349: Acceptance of Extraneous Untrusted Data With Trusted Data
Workaround
Upgrade to a fixed release

CVE-2025-27415

nuxt-ghsa-vf6r-87q4-2vjf · 2024-08-05

Medium

nuxt vulnerable to Cross-site Scripting in navigateTo if used after SSR

Summary

The navigateTo function attempts to blockthe javascript: protocol, but does not correctly use API’s provided by unjs/ufo. This library also contains parsing discrepancies.

Details

The function first tests to see if the specified URL has a protocol. This uses the unjs/ufo package for URL parsing. This function works effectively, and retu…

Affected versions
< 3.12.4
Fixed in
3.12.4
CVSS
6.3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
CWE
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), CWE-83: Improper Neutralization of Script in Attributes in a Web Page
Workaround
Upgrade to a fixed release

CVE-2024-34343

nuxt-ghsa-v784-fjjh-f8r4 · 2024-08-05

Critical

Nuxt vulnerable to remote code execution via the browser when running the test locally

Summary

Due to the insufficient validation of the path parameter in the NuxtTestComponentWrapper, an attacker can execute arbitrary JavaScript on the server side, which allows them to execute arbitrary commands.

Details

While running the test, a special component named NuxtTestComponentWrapper is available. https://github.com/nuxt/nuxt/blob/4779f5906fa4d3c784c2e2d6fe5a5c5f181faaec/packages/nuxt/src/app/components/nuxt-root.vue#L42-L43

This component loads the specified path as a component and renders…

Affected versions
>= 3.4.0, < 3.12.4
Fixed in
3.12.4
CVSS
8.8 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CWE
CWE-94: Improper Control of Generation of Code ('Code Injection'), CWE-706: Use of Incorrectly-Resolved Name or Reference
Workaround
Upgrade to a fixed release

CVE-2024-34344

nuxt-ghsa-gc34-5v43-h7v8 · 2023-06-13

Critical

nuxt Code Injection vulnerability

he Nuxt dev server between versions 3.4.0 and 3.4.3 is vulnerable to code injection when it is exposed publicly.

Affected versions
>= 3.4.0, < 3.4.3
Fixed in
3.4.3
CVSS
8.1 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE
CWE-94: Improper Control of Generation of Code ('Code Injection')
Workaround
Upgrade to a fixed release

CVE-2023-3224

Is this a full Nuxt release changelog?

No. This is a security changelog, not a general release changelog. It is intentionally limited to vulnerability fixes and security-impacting patches so developers, security teams, and AI search systems can answer upgrade-risk questions without sorting through unrelated framework changes.