Nuxt: Reflected XSS in `<NuxtLink>` via unsanitised `javascript:` or `data:` URL
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
Nuxt is an open-source web development framework for Vue.js. Prior to versions 3.21.7 and 4.4.7, <NuxtLink> did not validate the URL scheme of values bound to its to or href props before rendering them into the href attribute of the underlying <a> element. When an application binds attacker-controlled input (a query parameter, a CMS field, a user-supplied profile URL) to <NuxtLink :to> or :href, the attacker can supply a javascript: or vbscript: URL that is reflected verbatim into the rendered markup. Clicking the link executes the supplied script in the origin of the Nuxt application, resulting in reflected DOM-based cross-site scripting. A data:text/html,... payload reflected through the same sink does not execute in the application's origin but enables a same-tab phishing surface anchored to a legitimate application link. The same value was exposed to consumers of the component's custom slot via the href and route.href props, so applications that re-bind those values to their own anchors were affected identically. This issue has been patched in versions 3.21.7 and 4.4.7.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| nuxt | nuxt | before 3.21.7; 4.0.0 to before 4.4.7 | 3.21.7, 4.4.7 | Patch available | CNA |
| — | nuxt (npm) | 4.0.0 to before 4.4.7 | 4.4.7 | Patch available | GHSA-934w-87qh-qr26 |
| — | nuxt (npm) | 3.0.0 to before 3.21.7 | 3.21.7 | Patch available | GHSA-934w-87qh-qr26 |
- nuxt Vendornuxt Affected before 3.21.7; 4.0.0 to before 4.4.7 Fixed in 3.21.7, 4.4.7 Patch available CNA
- nuxt (npm) Vendor— Affected 4.0.0 to before 4.4.7 Fixed in 4.4.7 Patch available GHSA-934w-87qh-qr26
- nuxt (npm) Vendor— Affected 3.0.0 to before 3.21.7 Fixed in 3.21.7 Patch available GHSA-934w-87qh-qr26
Remediation
- Fix · CNA nuxt (nuxt) Fixed in 3.21.7, 4.4.7
- Fix · GHSA-934w-87qh-qr26 nuxt (npm) Fixed in 4.4.7 Advisory →
- Fix · GHSA-934w-87qh-qr26 nuxt (npm) Fixed in 3.21.7 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-53722
- 2026-10-03 Alias added: GHSA-934w-87qh-qr26
References
Patch 3
Other 1
More Nuxt vulnerabilities
- TI-2023-03020 Code Injection in nuxt/nuxt CVSS 3.1CRITICAL 9.8
- TI-2024-28339 Server-Side Request Forgery (SSRF) in nuxt-icon CVSS 3.1HIGH 8.6
- TI-2024-22685 Remote code execution via the browser when running the test locally in nuxt CVSS 3.1HIGH 8.8
- TI-2026-34788 Nuxt: Route middleware not enforced when rendering `.server.vue` pages via `/__nuxt_island/page_*` CVSS 4.0MEDIUM 6.3
- TI-2024-22684 Cross-site Scripting (XSS) in navigateTo if used after SSR in nuxt CVSS 3.1MEDIUM 6.3
- TI-2023-00833 Cross-site Scripting (XSS) - Generic in nuxt/framework CVSS 3.1MEDIUM 6.1
Sources
- CVE-2026-53722 · CVE Program
- CVE-2026-53722 · NVD
- FIRST EPSS
- GHSA-934w-87qh-qr26 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences