CVE-2026-114130: Nuxt: Incomplete fix for GHSA-934w-87qh-qr26: a `javascript:` URL prefixed with an ASCII control character executes from `<NuxtLink>` when `pages` is disabled
An application that renders <NuxtLink :to="..."> with a value it does not control can be made to render an anchor whose href executes script in the application’s origin when clicked.
This is an incomplete fix for GHSA-934w-87qh-qr26 (CVE-2026-53722). It only affects applications running without a pages/ directory, where pages resolves to false and Nuxt registers its own router in place of vue-router. Applications using vue-router are not affected.
Prefixing javascript: with an ASCII C0 control character, for example %01, meant the value was not recognised as having a protocol. It was classified as an internal route and so never reached the protocol check added in GHSA-934w-87qh-qr26, and the router used for pages: false passed it through to the rendered href unchanged. Browsers strip the leading control character and run the result as a script URL.
Both <NuxtLink custom> and the default anchor are affected, and the href is present in the server-rendered HTML.
References
- github.com/advisories/GHSA-jjm6-p2m9-9w4x
- github.com/nuxt/nuxt/commit/355ed9565127ff9b1453deb7160059ed55b3cb85
- github.com/nuxt/nuxt/commit/df46569d5d3c7a7799de54c328634168fbae70bb
- github.com/nuxt/nuxt/pull/36459
- github.com/nuxt/nuxt/releases/tag/v4.6.0
- github.com/nuxt/nuxt/security/advisories/GHSA-jjm6-p2m9-9w4x
- nvd.nist.gov/vuln/detail/CVE-2026-114130
Code Behaviors & Features
Detect and mitigate CVE-2026-114130 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 →