CVE-2026-71315: Nuxt route rules silently dropped for mixed-case paths, bypassing appMiddleware auth gates (incomplete fix for CVE-2026-53721)
Nuxt matches route rules case-insensitively by default (mirroring vue-router’s default sensitive: false routing). The fix for GHSA-mm7m-92g8-7m47 / CVE-2026-53721 lowercased the lookup path before matching route rules, but the route-rule keys compiled into the matcher were left verbatim. As a result, any route rule whose key contains an uppercase character (for example /Admin, /Dashboard/**, or the rules Nuxt derives from PascalCase/camelCase page files such as pages/Admin.vue) never matches, because every lookup is folded to lowercase while the key stays mixed-case.
vue-router still serves the page case-insensitively, so the page renders with none of its Nuxt route-rule protections applied. The most serious consequence is an authorization bypass: an appMiddleware rule used as an auth gate (routeRules: { '/Admin/dashboard': { appMiddleware: 'auth' } }) is dropped, and /Admin/dashboard, /admin/dashboard, and /ADMIN/dashboard all render the protected page (and its SSR-fetched data) to an unauthenticated visitor instead of redirecting to login. The same gap drops Nuxt’s other app-side route-rule behaviours for mixed-case keys, including the client redirect middleware, the app-side ssr: false decision, prerender, and payload handling.
References
- github.com/advisories/GHSA-hxvh-4h3w-prp9
- github.com/nuxt/nuxt/commit/619963309e082190bac4a26b05f2dd155b039b81
- github.com/nuxt/nuxt/commit/ad624a75ad2d215f43633f6b40be346a7194d34d
- github.com/nuxt/nuxt/releases/tag/v3.21.10
- github.com/nuxt/nuxt/releases/tag/v4.5.1
- github.com/nuxt/nuxt/security/advisories/GHSA-hxvh-4h3w-prp9
- nvd.nist.gov/vuln/detail/CVE-2026-71315
Code Behaviors & Features
Detect and mitigate CVE-2026-71315 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →