Skip to main content

Nuxt EUVDEUVD-2026-107416

| CVE-2026-114132 MEDIUM
Improper Handling of Case Sensitivity (CWE-178)
2026-10-21 GitHub_M GHSA-vjh5-4x84-xrqp
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send request with altered path letter case
  2. Exploit
    Nitro fails to match case-sensitive route rule
  3. Impact
    Page 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nuxt < 4.6.2

Affected Packages

npm @nuxt/nitro-server fix: 4.6.2
npm nuxt fix: 4.6.2

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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
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
vuln.today AI 6.5 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 19:18 EUVD
CVE Published
Oct 21, 2026 - 17:50 cve.org
MEDIUM 6.3

DescriptionCVE.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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 3 npm packages depend on @nuxt/nitro-server (1 direct, 2 indirect)

Ecosystem-wide dependent count for version 4.2.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
High
widely-used Vue.js meta-framework deployed across many production web apps
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
High

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Nuxt

View all
CVE-2023-3224 CRITICAL POC
9.8 Jun 13

Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2024-34344 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-23657 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-42352 HIGH POC
7.5 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2026-61793 MEDIUM POC
6.9 Sep 17

Unauthenticated server-side request forgery in Nuxt OG Image (the npm package nuxt-og-image) 6.0.2 through 6.6.x allows

CVE-2025-52662 MEDIUM POC
6.1 Nov 07

A vulnerability in Nuxt DevTools has been fixed in version **2.6.4***. Rated medium severity (CVSS 6.9), this vulnerabil

CVE-2024-34343 MEDIUM POC
6.1 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se

CVE-2023-0878 MEDIUM POC
6.1 Feb 17

Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1

CVE-2022-4413 MEDIUM POC
6.1 Dec 12

Cross-site Scripting (XSS) - Reflected in GitHub repository nuxt/framework prior to v3.0.0-rc.13. Rated medium severity

CVE-2023-2138 CRITICAL
9.8 Apr 18

Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS

CVE-2026-41248 CRITICAL
9.1 Apr 24

Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t

CVE-2026-53721 HIGH POC
8.8 Jun 12

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy