Skip to main content

Nuxt CVE-2026-114133

| EUVDEUVD-2026-107417 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-21 GitHub_M GHSA-xfq5-w38q-pc2x
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate and submit crafted head value
  2. Delivery
    Value passed to useHeadSafe in island
  3. Exploit
    Safe-input marker dropped on serialization
  4. Execution
    NuxtIsland injects entry into page head
  5. Impact
    Stored XSS executes in victim browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires ALL of: (1) a Nuxt application in the vulnerable range 3.13.0-4.6.1; (2) use of server islands - a .server.vue component/page or a component rendered through NuxtIsland; (3) application code that passes attacker-controlled data into useHeadSafe within that island (the serialized island response loses the _safe marker, so NuxtIsland re-adds the input as an ordinary head entry and the allowlist no longer strips event-handler attributes or executable script). Limiting factors that reduce realistic risk: the vulnerable useHeadSafe-with-untrusted-data pattern is non-default developer code, not an out-of-the-box behavior; the CVSS PR:L indicates the attacker needs some privilege/ability to store the malicious data; and UI:R means a victim must subsequently load the affected island page for the stored payload to fire.

Impact

This is a genuine but conditional, medium-severity stored XSS (CWE-79), not a widespread emergency. The vendor CVSS of 5.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) reflects network reach but low technical impact (C:L/I:L/A:N) and the need for both low privileges (PR:L) and victim interaction (UI:R). No EPSS score, no CISA KEV listing, and no public exploit were supplied, so the only exploitation signal is the fix commit itself - exploitation status is therefore 'no public exploit identified at time of analysis.' The single most important mitigating factor is not captured by the raw score: the flaw only manifests when a developer deliberately passes attacker-controlled data to useHeadSafe inside a .server.vue component / server island or a NuxtIsland-rendered component. useHeadSafe exists precisely to sanitize such input, so the affected pattern is a security-conscious but mis-trusted coding path rather than a default behavior - I assess AC:H rather than the vendor's AC:L for this reason (see assessed vector). Net: real priority only for Nuxt (3.13.0-4.6.1) applications that use server islands AND feed untrusted data through useHeadSafe; for everyone else this is low real-world risk. No conflicting signals in the data, but the absence of EPSS/KEV/POC means spread cannot be quantified.

Exploit ScenarioDerived

An attacker submits a crafted value (e.g. containing an event-handler attribute or script content) through an input that the target Nuxt app forwards to useHeadSafe within a server-island/.server.vue component. Because the server-island renderer drops the safe-input marker, NuxtIsland re-inserts the value into the page head as an ordinary entry, bypassing the allowlist. When another user loads the page, the payload executes as stored XSS in the application origin. No public proof-of-concept was provided; the referenced GitHub link is the remediation commit, not exploit code.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Stored cross-site scripting (CWE-79) affects Nuxt 3.13.0 through 4.6.1 when server islands are combined with useHeadSafe: the island renderer serializes raw head input without preserving the safe-input marker, so NuxtIsland re-inserts it as an ordinary head entry and the allowlist no longer strips event-handler attributes or executable script. A victim must load the poisoned island page for the payload to fire. This is a genuine but conditional, medium-severity issue: the vulnerable pattern requires application code that passes attacker-controlled data into useHeadSafe inside a .server.vue component or a NuxtIsland-rendered component, which is non-default developer code. No public exploit identified at time of analysis, and no KEV listing is present.

RemediationAI

Upgrade Nuxt to 4.6.2 or later, which incorporates the fix in commit 493565e99451a0f52330b1f6b979254a4a39e5d0 and restores the useHeadSafe allowlist across the island serialization boundary (see https://github.com/nuxt/nuxt/releases/tag/v4.6.2 and advisory https://github.com/nuxt/nuxt/security/advisories/GHSA-xfq5-w38q-pc2x). If immediate upgrade is not possible, the primary compensating control is code-level: audit all .server.vue components and NuxtIsland-rendered components for calls that pass user-controlled data into useHeadSafe, and strip or strictly validate/encode those values before use - or remove useHeadSafe-driven head injection from island responses entirely, accepting reduced per-page metadata flexibility. Because the issue requires stored attacker data (PR:L) plus victim page load (UI:R), adding output encoding on the fields that reach head tags and shortening content-script lifetimes reduce exposure but do not fix the marker-loss flaw. Restricting who can write the data that feeds these head entries (input validation at the write path) lowers risk without removing it, and generic header/CSP hardening against inline script and inline event handlers can block some payload variants but may break legitimate application functionality.

Affected VersionsENISA

nuxt 3.13.0, < 4.6.2

Affected Packages

npm nuxt fix: 4.6.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Nuxt's server-island pipeline renders .server.vue components and embeds the resulting head entries into the island response. The useHeadSafe API normally applies Unhead's SafeInputPlugin allowlist, which drops disallowed attributes such as on* event handlers, javascript: URLs on links, and raw script textContent. In the vulnerable range, that safe-input marker was not carried across serialization: the entry was emitted as a plain head entry, and the client-side NuxtIsland hydration pushed it back into the page head as an ordinary entry, bypassing the allowlist entirely. The upstream fix (commit 493565e, released in v4.6.2) adds a toSafeHeadInput utility that re-applies SafeInputPlugin to resolved input when entry.options._safe is set, reconstructing sanitized values, joining Set/Map-based props, and JSON-serializing allowed script payloads (e.g. application/ld+json) with escaped </script> sequences. The underlying weakness class is improper neutralization of input during web page generation (CWE-79), specifically a sanitization-context loss across a serialization boundary rather than a flaw in the allowlist itself.

Know when Nuxt gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.4 MEDIUM

AC:H because exploitation depends on the app deliberately routing untrusted data through useHeadSafe in a server island (non-default); PR:L to store data, UI:R for victim viewing, S:C and C:L/I:L for browser-context stored XSS.

3.1 AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 19:18 EUVD
CVE Published
Oct 21, 2026 - 17:52 cve.org
MEDIUM 5.4

DescriptionCVE.org

Nuxt is an open-source web development framework for Vue.js. From 3.13.0 until 4.6.2, the server-island renderer serializes raw useHeadSafe entry input into the island response without preserving the safe-input marker, and NuxtIsland later inserts that input into the page head as an ordinary entry. An application that passes attacker-controlled data to useHeadSafe in a .server.vue component or page, or in a component rendered through NuxtIsland, can therefore render values normally removed by the allowlist, including event-handler attributes or executable script content, resulting in stored cross-site scripting in the application origin. This issue is fixed in version 4.6.2 .

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
High
Nuxt is a widely adopted Vue.js SSR/meta-framework
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Nuxt

View all
CVE-2023-3224 CRITICAL POC
9.8 Jun 13

Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2024-34344 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-23657 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-42352 HIGH POC
7.5 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2026-61793 MEDIUM POC
6.9 Sep 17

Unauthenticated server-side request forgery in Nuxt OG Image (the npm package nuxt-og-image) 6.0.2 through 6.6.x allows

CVE-2025-52662 MEDIUM POC
6.1 Nov 07

A vulnerability in Nuxt DevTools has been fixed in version **2.6.4***. Rated medium severity (CVSS 6.9), this vulnerabil

CVE-2024-34343 MEDIUM POC
6.1 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se

CVE-2023-0878 MEDIUM POC
6.1 Feb 17

Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1

CVE-2022-4413 MEDIUM POC
6.1 Dec 12

Cross-site Scripting (XSS) - Reflected in GitHub repository nuxt/framework prior to v3.0.0-rc.13. Rated medium severity

CVE-2023-2138 CRITICAL
9.8 Apr 18

Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS

CVE-2026-41248 CRITICAL
9.1 Apr 24

Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t

CVE-2026-53721 HIGH POC
8.8 Jun 12

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy