Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend request with altered path letter case
-
ExploitNitro fails to match case-sensitive route rule
-
ImpactPage renders without redirect/headers/proxy/ssr:false/noScripts protections
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Case sensitivity handling
|
| Exploitation Conditions | Exploitable only when the Nuxt application (prior to 4.6.2) defines server-side route rules - redirect, headers, proxy, ssr:false, or noScripts - and has NOT set router.options.sensitive:true in nuxt.config (because Nitro follows the nuxt.config value; setting sensitive only in app/router.options.ts does NOT establish the exclusion). The attacker needs no authentication and only varies letter case in the request path. Limiting factors that reduce real risk: applications that set sensitive:true in nuxt.config are entirely unaffected, and access controls enforced in server middleware, page route middleware, or page data fetching remain independent of this matcher and are NOT bypassed - so the flaw bypasses route-rule-based behavior, not genuine auth checks. |
| Impact | This is a moderate, configuration-dependent security-control bypass rather than a high-urgency flaw. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) correctly signals remote, unauthenticated, low-complexity access but flags AT:P (attack requirement present), which captures that exploitation only matters when the app actually relies on server-side route rules AND has not set router.options.sensitive:true in nuxt.config. Impact is explicitly low on both confidentiality and integrity (VC:L/VI:L/VA:N), consistent with a bypass of redirect/headers/proxy/ssr:false/noScripts rather than code execution or full data compromise. No EPSS score, CISA KEV listing, or public POC is present in the input, so there is no signal of active or imminent widespread exploitation - this is a defense-in-depth/hardening issue, not a drop-everything priority. A key mitigating fact stated in the advisory itself: access checks in server middleware, page route middleware, and page data fetching are NOT affected, so this generally does not bypass real authentication/authorization, only route-rule-based behaviors. CWE-178 (improper case-sensitivity handling) matches the described page-vs-Nitro mismatch. Overall: a legitimate issue worth patching, but low real-world risk for most deployments and effectively zero for apps that already set sensitive:true in nuxt.config or that enforce access control in middleware. |
| Exploit ScenarioDerived | An attacker requests a protected or specially-handled route using a different letter case (e.g. /Admin instead of /admin or /SECURE-Page). Because Nuxt resolves the page case-insensitively while Nitro matches route-rule keys case-sensitively, the case-variant path renders the page without the intended server route rule - skipping a redirect, security headers, proxy behavior, or an ssr:false/noScripts restriction. No public exploit identified at time of analysis; exploitation requires only varying the URL case and no authentication. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Route-rule matching in Nuxt versions prior to 4.6.2 can be evaded by changing only the letter case of a request path, because Nuxt's page resolver is case-insensitive by default while Nitro's server-side route-rule keys are matched case-sensitively. A remote, unauthenticated attacker who requests a case-variant of a protected route can cause redirects, custom headers, proxy rules, ssr: false and noScripts to be skipped, and can make getRouteRules(event)/matchRouteRules return no rule at all for that path. This is a configuration-dependent security-control bypass rather than a high-urgency flaw: applications that set router.options.sensitive: true in nuxt.config are unaffected, and access checks implemented in server middleware, page route middleware or page data fetching remain independent and are not bypassed. No public exploit code or confirmed active exploitation was identified at time of analysis; the issue is addressed by the vendor fix in 4.6.2.
RemediationAI
Upgrade to Nuxt 4.6.2, which normalizes route-rule keys and request paths consistently and wires route rules through a Nitro request hook (release: https://github.com/nuxt/nuxt/releases/tag/v4.6.2; advisory: https://github.com/nuxt/nuxt/security/advisories/GHSA-vjh5-4x84-xrqp). If an immediate upgrade is not possible, set router.options.sensitive: true in nuxt.config so page resolution becomes case-sensitive and matches Nitro's route-rule keys - the trade-off is that existing links, bookmarks, sitemaps or CDN-cached URLs using non-canonical casing will start returning 404s and any SEO redirects built on mixed-case paths will need cleanup, and note that this setting placed only in app/router.options.ts has no effect on the server. As a complementary control, move any behavior you actually depend on for protection (blocking, gating, header hardening) out of route rules and into server middleware, page route middleware or page data fetching, which the advisory confirms are unaffected by this matcher; the trade-off is added per-request overhead and duplicated logic, but it removes reliance on a component that can be bypassed via path casing. Finally, since ssr: false and noScripts rules can be skipped by a case variant, avoid treating them as security boundaries and pair them with server-side authorization.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a canonicalization/matching inconsistency (CWE-178, improper handling of case sensitivity) between two layers of the Nuxt stack. Nuxt resolves page routes through Vue Router, which by default treats paths case-insensitively, so /Admin and /admin can render the same page component. Nitro, the server engine, stores its route rules - redirect, headers, proxy, ssr: false, noScripts - keyed by path strings in a radix3 router and matches incoming request paths case-sensitively. When the two disagree, the page renders in a case variant for which no Nitro rule key matches, so the rule is silently never applied and route-rule lookups (getRouteRules(event), matchRouteRules) return empty. The upstream fix in commit f6cfee52 adds a Nitro runtime plugin that resolves and assigns event.context._nitro.routeRules before Nitro's own route-rules handler runs, plus a new internal module '#internal/nuxt/route-rules.mjs' that exports normalizeRouteRulePath derived from normalizePath with case folding keyed off nuxt.options.router.options.sensitive. The matcher is rebuilt over normalized runtime-config route-rule keys when the sensitive setting differs, and Nuxt's getRouteRules/matchRouteRules exports were redirected from nitropack/runtime to the new Nuxt-side utility. Notably, the exclusion is driven strictly by the nuxt.config value; setting router.options.sensitive only in app/router.options.ts does not change the server-side behavior.
Know when Nuxt gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Remote, unauthenticated case-variant request (AV:N/AC:L/PR:N/UI:N) bypasses route rules for limited confidentiality/integrity impact (C:L/I:L); no availability effect and scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Nuxt is an open-source web development framework for Vue.js. Prior to 4.6.2, Nuxt resolves pages case-insensitively by default while Nitro matches server-side route-rule keys case-sensitively, allowing a request whose path differs only by letter case to render without the server rule intended for that page. The mismatch can skip redirect, headers, proxy, ssr: false, and noScripts, and can cause getRouteRules(event) and matchRouteRules to return no rule for the case variant. Applications that set router.options.sensitive: true in nuxt.config are not affected; setting sensitive only in app/router.options.ts does not establish this exclusion because the server follows the nuxt.config value. Access checks implemented in server middleware, page route middleware, or page data fetching remain independent of this matcher. This issue is fixed in version 4.6.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Unauthenticated server-side request forgery in Nuxt OG Image (the npm package nuxt-og-image) 6.0.2 through 6.6.x allows
A vulnerability in Nuxt DevTools has been fixed in version **2.6.4***. Rated medium severity (CVSS 6.9), this vulnerabil
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se
Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1
Cross-site Scripting (XSS) - Reflected in GitHub repository nuxt/framework prior to v3.0.0-rc.13. Rated medium severity
Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS
Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t
Route-rule middleware bypass in Nuxt 3.11.0-3.21.6 and 4.0.0-4.4.6 allows remote attackers to evade routeRules-defined p
EUVD-2026-107416
GHSA-vjh5-4x84-xrqp
NVD
CVE.org
EPSS
Exploit-DB