Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. nuxt
  4. ›
  5. CVE-2026-71318

CVE-2026-71318: Nuxt: Unauthorized Component Instantiation via Server Island Props

August 5, 2026

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 SomeGlobalComponent if it is globally registered, even though the attacker should only be able to drive props for the island’s declared component. Similarly, { "as": "iframe" } renders an <iframe> element.

Unlike the primary RCE vector (GHSA-9473-5f9j-94wq), this does not require vue.runtimeCompiler to be enabled. A plain string prop is sufficient to trigger component resolution. The template/render key guard that addresses the RCE vector does not block plain string values.

Some component libraries expose a polymorphic as / asChild prop that forwards its value into <component :is>; @nuxt/ui (via reka-ui) is a widely used example. An application is affected if such a component receives the attacker-controlled value inside a server island. Note this does not require explicit prop forwarding: island props the island component does not declare fall through as attributes onto its single root element, so an island whose root is a reka-ui / @nuxt/ui component receives the attacker’s as value implicitly. Unlike the RCE vector, no vue.runtimeCompiler is required, which makes this vector reachable in more configurations. These libraries are not themselves vulnerable; they are noted only because they commonly provide the dynamic-component sink. Installing @nuxt/ui does not by itself register any component as a server island: the application must define the island (a .server.vue file).

References

  • github.com/advisories/GHSA-48hr-524c-v5w3
  • github.com/nuxt/nuxt/releases/tag/v3.21.10
  • github.com/nuxt/nuxt/releases/tag/v4.5.1
  • github.com/nuxt/nuxt/security/advisories/GHSA-48hr-524c-v5w3
  • nvd.nist.gov/vuln/detail/CVE-2026-71318

Code Behaviors & Features

Detect and mitigate CVE-2026-71318 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 3.1.0 before 3.21.10, all versions starting from 4.0.0 before 4.5.1

Fixed versions

  • 3.21.10
  • 4.5.1

Solution

Upgrade to versions 3.21.10, 4.5.1 or above.

Impact 4.8 MEDIUM

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-20: Improper Input Validation

Source file

npm/nuxt/CVE-2026-71318.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 08 Aug 2026 00:18:46 +0000.