{"id":"CVE-2026-114131","title":"Nuxt: Route rules are matched against the raw request path, so a percent-encoded segment can bypass `appMiddleware` on dynamic and catch-all routes","summary":"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-…","severity":"medium","cvss":6.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","cvssSource":"cna","cwe":["CWE-436","CWE-863"],"vendor":"nuxt","product":"nuxt","affected":["nuxt >= 4.0.0, < 4.4.4","nuxt >= 3.11.0, < 3.21.4"],"published":"2026-10-21","updated":"2026-10-21","sourceUpdated":"2026-10-21T17:41:24.016Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-114131","references":[{"url":"https://github.com/nuxt/nuxt/security/advisories/GHSA-6gq8-jgmh-3ffp","label":"https://github.com/nuxt/nuxt/security/advisories/GHSA-6gq8-jgmh-3ffp"},{"url":"https://github.com/nuxt/nuxt/commit/81f86ac5ee82bb1a9b887e59f3bc84624d711497","label":"https://github.com/nuxt/nuxt/commit/81f86ac5ee82bb1a9b887e59f3bc84624d711497"},{"url":"https://github.com/nuxt/nuxt/commit/9123ed850c468a7424a868c20d0d49a5507d32e5","label":"https://github.com/nuxt/nuxt/commit/9123ed850c468a7424a868c20d0d49a5507d32e5"},{"url":"https://github.com/nuxt/nuxt/releases/tag/v3.21.11","label":"https://github.com/nuxt/nuxt/releases/tag/v3.21.11"},{"url":"https://github.com/nuxt/nuxt/releases/tag/v4.5.2","label":"https://github.com/nuxt/nuxt/releases/tag/v4.5.2"}],"tags":["cve.org"],"ingestedAt":"2026-10-21T18:09:27.274Z","slug":"CVE-2026-114131","body":"## Overview\n\nNuxt 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.\n\n## Affected\n\n- `nuxt >= 4.0.0, < 4.4.4`\n- `nuxt >= 3.11.0, < 3.21.4`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":36,"depthScoreParts":{"impact":35.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}