MEDIUM 5.4

CVE-2026-46342: Nuxt Island Hash Validation Bypass Vulnerability

Nuxt, a popular Vue.js framework, contains a vulnerability in its island component rendering system that allows attackers to manipulate server responses by crafting malicious requests. The vulnerability exists because the framework computes a security hash client-side but never validates it server-side, meaning an attacker can request the same endpoint with different parameters and receive unintended responses. This could enable attackers to conduct XSS attacks or retrieve sensitive information if islands expose data meant for other users. The issue affects Nuxt 3.1.0 through 3.21.5 and 4.0.0-alpha.1 through 4.4.5, as well as the associated @nuxt/nitro-server package.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Weaknesses (CWE)
CWE-349, CWE-444, CWE-79
Affected products
2 configuration(s)
Published / Modified
2026-06-12 / 2026-06-17

NVD description (verbatim)

Nuxt is an open-source web development framework for Vue.js. In Nuxt versions 3.1.0 to before 3.21.6 and 4.0.0-alpha.1 to before 4.4.6 and @nuxt/nitro-server versions 3.20.0 to before 3.21.6 and 4.0.0-alpha.1 to before 4.4.6, 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. This issue has been patched in versions 3.21.6 and 4.4.6.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The /__nuxt_island/* endpoint in affected Nuxt versions implements a hash-based component isolation mechanism for server-side island rendering. The framework generates a hash identifier (<Name>_<hashId>.json) client-side via the <NuxtIsland> component, encoding the component name and a hash derived from the props passed to it. However, the server-side endpoint does not validate that incoming props parameters match the hash; it simply renders the requested island component with whatever props are supplied in the query or request body. This violates the security boundary intended by the hash mechanism—an attacker can call /__nuxt_island/MyComponent?props=attacker_controlled without providing a legitimate hash, or can modify props after the hash was issued, causing the same island path to return materially different responses. The vulnerability is classified under CWE-349 (Improper Restriction of Rendered UI Layers or Frames), CWE-444 (Inconsistent Interpretation of HTTP Requests), and CWE-79 (Improper Neutralization of Input During Web Page Generation—XSS).

Business impact

Organizations running affected Nuxt applications face two primary risks: data leakage and client-side injection attacks. An attacker could craft requests to island endpoints with manipulated props to trigger different server-side behavior, potentially accessing data that should be restricted to other users or sessions. Additionally, if islands render user-controlled or insufficiently sanitized data, the lack of hash validation could lower the barrier to XSS exploitation. While a user interaction is required (the CVSS vector includes UI:R), the practical impact depends on how applications use islands and whether they embed sensitive data or unsanitized user input in component props. Development teams should audit island usage to identify exposure.

Affected systems

Nuxt versions 3.1.0 through 3.21.5 (before patch 3.21.6) and versions 4.0.0-alpha.1 through 4.4.5 (before patch 4.4.6) are affected. The parallel @nuxt/nitro-server package in the same version ranges is also vulnerable. Applications using Nuxt islands for server-side rendering are in scope; applications that do not use the island feature or are running patched versions are not impacted.

Exploitability

The vulnerability requires network access and user interaction to exploit but no authentication or elevated privileges. An attacker can manually craft requests to /__nuxt_island/* endpoints with attacker-controlled props, and if a victim visits a malicious page that makes such requests, the browser will send them on behalf of the user. The low complexity and lack of privilege requirements keep exploitability relatively straightforward, though the requirement for user interaction (clicking a link or visiting a compromised page) adds friction. No public exploit code or active KEV listing was identified at the time of publication.

Remediation

Update Nuxt to version 3.21.6 or later for the 3.x series, or version 4.4.6 or later for the 4.x series. Similarly, update @nuxt/nitro-server to the corresponding patched versions. After upgrading, the framework will validate the hash on the server side, ensuring props match what was originally issued by the client-side component. Verify patches are correctly applied by confirming the version number via package.json or package manager output.

Patch guidance

Prioritize patching for applications that actively use Nuxt islands in production or expose island endpoints to untrusted users. For Nuxt 3.x applications, upgrade to 3.21.6 or later. For Nuxt 4.x applications, upgrade to 4.4.6 or later. Test patches in a staging environment to ensure compatibility; the patch focuses on server-side validation logic and should not break existing legitimate island usage. If using a monorepo or bundled Nuxt setup, confirm that @nuxt/nitro-server is also updated to the matching patched version. Review your package-lock or yarn.lock file to verify no transitive dependencies pin an older version.

Detection guidance

Review application logs for unusual requests to /__nuxt_island/* endpoints, particularly those with query parameters or request bodies that differ significantly from normal usage patterns. Look for repeated or high-volume requests to the same island endpoint with varying props. Implement monitoring on island endpoints to detect when the same island is called with materially different parameters in short time windows—a potential sign of probing or exploitation. During patching, confirm that server-side hash validation is in place by examining the Nuxt source code in node_modules or by enabling verbose logging to trace hash verification in request handling.

Why prioritize this

Although the CVSS score of 5.4 is moderate, the vulnerability should be prioritized for patching within weeks rather than months, especially for publicly facing or multi-tenant Nuxt applications. The attack surface is clear—any application using islands is potentially vulnerable—and the remediation is straightforward (update and test). The requirement for user interaction reduces immediate risk of large-scale automated attacks, but targeted exploitation is plausible. Applications in regulated industries (finance, healthcare) should expedite patching if islands handle sensitive data.

Risk score, explained

The CVSS 3.1 score of 5.4 (MEDIUM) reflects a network-accessible vulnerability with low attack complexity and no privilege requirements, balanced against the requirement for user interaction and limited scope (confidentiality and integrity of data accessed via the island, not system-wide compromise). The vector AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N indicates an attacker can trigger unintended server responses and potentially extract or modify data, but without denial-of-service or severe data breach impact. In context, organizations relying on islands for security isolation should treat this as elevated priority despite the moderate score.

Frequently asked questions

Do all Nuxt applications need to patch this vulnerability?

No. The vulnerability specifically affects the island rendering feature. If your application does not use Nuxt islands (the <NuxtIsland> component or /__nuxt_island/* endpoints), you are not exposed. Review your codebase for island usage; if absent, this CVE does not require immediate action, though staying current on patches is still recommended.

What is a Nuxt island, and why is it a security boundary?

A Nuxt island is a server-rendered component that can be independently instantiated and updated on a page, often used for performance optimization or to render dynamic content without a full page reload. Islands are designed to isolate component state and props; the hash mechanism ensures that the server respects the props the client-side component intended to use. Without validation, an attacker can bypass that boundary and request an island with arbitrary props, violating the isolation contract.

Can this vulnerability be exploited without user interaction?

The CVSS vector indicates user interaction is required, meaning a victim must click a link or visit a malicious site that triggers the request. However, if an attacker controls a page that the victim visits—such as a forum post, ad, or compromised domain—they can embed requests silently, lowering the practical friction. Always verify patches are applied rather than relying solely on the UI:R factor.

What should I check after applying the patch?

After updating to the patched version, verify the version number in package.json and reinstall dependencies (npm install or yarn install). Test island components in your application to confirm they still render correctly with legitimate props. Review any custom island logic or integrations to ensure they work with server-side hash validation enabled. Monitor application logs for validation errors after deployment.

This analysis is provided for informational purposes and does not constitute security advice. The information herein is based on vendor advisories and CVE registry data current as of the publication date. Organizations should verify patch availability, test in staging environments, and consult vendor advisories and security best practices before implementing changes. No exploit code or weaponized proof-of-concept is provided. Security teams should always validate vulnerability applicability to their specific deployments, as impact and exploitability vary by configuration and usage. For the latest information, consult the official Nuxt and Nitro project repositories and advisories. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).