Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
nuxt nuxt
>= 4.0.0, < 4.4.4affected>= 3.11.0, < 3.21.4affected
References
- https://github.com/nuxt/nuxt/security/advisories/GHSA-6gq8-jgmh-3ffp ↗
- 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 ↗