Nuxt: Authorization bypass via percent-encoded route paths
Summary
Nuxt compares routeRules keys with the raw request path, but decodes dynamic and catch-all route parameters during route resolution. A percent-encoded path segment can therefore reach a protected page without matching the intended routeRules entry, so appMiddleware is skipped during server-side rendering. An unauthenticated remote attacker can receive the gated page and its SSR data. The same mismatch affects other app-manifest rules such as redirect, appLayout, ssr, prerender and payload flags.
Affected
- Nuxt 3.11.0 up to but not including 3.21.4
- Nuxt 4.0.0 up to but not including 4.4.4
Fixed in
- Fixed in 3.21.4 and 4.4.4
- Vendor recommends the newer releases 3.21.11 and 4.5.2, which contain the corrected comparison
Workaround
- Vendor advisory lists no workaround other than upgrading.
- Do not rely on routeRules alone to protect pages; enforce authentication server-side in the page or API handler.
Exploitation
- No known exploitation in the wild (not listed as known exploited).
- CISA SSVC: exploitation none, automatable yes.
- Public PoC status is conflicting across sources; do not assume it is unexploited.
Our recommendation
- Inventory Nuxt applications, including lockfiles and deployed builds, and identify versions 3.11.0 to 3.21.x or 4.0.0 to 4.4.x.
- Upgrade to at least 3.21.11 or 4.5.2.
- Until patched, enforce access control server-side rather than with routeRules alone.
- Review SSR-rendered pages behind login for exposure of sensitive data and assess reporting duties if personal data was exposed.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-6gq8-jgmh-3ffp github.com
- Fix commit 81f86ac (Nuxt) github.com
- Fix commit 9123ed8 (Nuxt) github.com
- Nuxt release v3.21.11 github.com
- Nuxt release v4.5.2 github.com
- OSV GHSA-6gq8-jgmh-3ffp osv.dev
- GitLab Advisory Database CVE-2026-114131 advisories.gitlab.com
- VulDB entry 424927 vuldb.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 5 Nov 2026, 05:55.
Original description (NVD)
Nuxt is an open-source web development framework for Vue.js. From 3.11.0 until 3.21.4 and 4.4.4, Nuxt compares route-rule keys with the raw request path while route resolution decodes dynamic and catch-all parameters, allowing a percent-encoded segment to resolve to a protected page without matching the routeRules entry intended for that path. As a result, appMiddleware can be skipped during server rendering and an unauthenticated requester can receive the gated page and its SSR data. The same mismatch affects app-manifest rules including redirect, appLayout, ssr, prerender, and payload flags derived from cache, isr, and swr. This vulnerability is fixed in 4.4.4 and 3.21.4.
NVD references (5)
- https://github.com/nuxt/nuxt/commit/81f86ac5ee82bb1a9b887e59f3bc84624d711497
- https://github.com/nuxt/nuxt/commit/9123ed850c468a7424a868c20d0d49a5507d32e5
- https://github.com/nuxt/nuxt/releases/tag/v3.21.11
- https://github.com/nuxt/nuxt/releases/tag/v4.5.2
- https://github.com/nuxt/nuxt/security/advisories/GHSA-6gq8-jgmh-3ffp
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
