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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

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 Sun, 08 Nov 2026 00:16:49 +0000.