Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend request with %3F-encoded path segment
-
DeliveryNuxt helper and h3 resolve param to divergent values
-
ExploitAuthorization check passes against helper value
-
ExecutionResource selected from mismatched h3/context param
-
ImpactAccess unauthorized resource
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Interpretation consistency
|
| Exploitation Conditions | Exploitation requires the target to run Nuxt (or @nuxt/nitro-server) >=4.6.0 <4.6.2 AND to use an application pattern that reads the same route param from two different sources that must agree - specifically, using getRouterParam/getRouterParams from nuxt/server for one decision (e.g. an authorization check) while using event.context.params or another h3 helper for another decision (e.g. resource selection). The trigger is a request path containing an encoded question mark (%3F) in a param segment, which causes h3 to route on the decoded path up to the '?' while the Nuxt helper reads from mis-aligned raw segments, returning a different value. Named ([id]), unnamed, and catch-all ([...slug]) params are all affected. LIMITING factors: applications reading params exclusively through getRouterParam(s) OR exclusively through event.context.params/h3 helpers are NOT affected; Nuxt 3 and releases before 4.6.0 are NOT affected (helpers introduced in 4.6.0); high attack complexity and the non-default dual-source dependency (reflected as AC:H/AT:P) materially constrain real-world exploitability. |
| Impact | This is a moderate, conditional authorization-bypass issue (CWE-436 Interpretation Conflict / CWE-863 Incorrect Authorization) rather than a broad critical flaw. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:L) describes a network-reachable, unauthenticated vector but with high attack complexity (AC:H) and an explicit attack requirement (AT:P): exploitation only works against an application that reads the same route param from two different sources and relies on them agreeing. The vuln.today priority is 'this_month' (not act_now/emergency), consistent with a real but non-urgent issue. No KEV listing and no EPSS score are provided in the input, and there is no confirmed public exploit code - only VulnCheck and GHSA advisory references, not a verified working PoC. The signals are therefore internally consistent: real severity is gated by a non-default application coding pattern, so this is a genuine priority for teams running the affected versions with the vulnerable dual-source pattern, but not a widespread mass-exploitation threat. Note the input CVSS is 4.0 only; no CVSS 3.1 vector was supplied, and no EPSS/KEV data was provided to confirm or contradict exploitation likelihood. |
| Exploit ScenarioDerived | An attacker targets a Nuxt 4.6.0/4.6.1 API route such as server/api/auth/[...slug] that performs an authorization check using getRouterParam from nuxt/server but selects the resource from event.context.params. The attacker sends a request like /api/auth/private%3Fignored/public, where h3 matches slug='private' while getRouterParam returns 'public', so the request passes the authorization check for one resource while acting on another. No public exploit code is confirmed in the input, but the GHSA advisory documents the exact technique; exploitation is unauthenticated (PR:N) but high-complexity (AC:H) and depends on the app's dual-source pattern. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
Route parameter confusion in Nuxt 4.6.0 through 4.6.1 (and the matching @nuxt/nitro-server releases) allows remote attackers to have the getRouterParam/getRouterParams helpers return a parameter value different from the one h3 actually matched, by sending a path segment containing an encoded question mark (%3F). Impact is conditional: only applications that read the same route param from two different sources - the Nuxt helper for an authorization decision and event.context.params or another h3 helper for resource selection - can be driven to check one resource and act on another, yielding limited confidentiality impact. Exploitation requires high attack complexity and a non-default dual-source coding pattern, no public exploit was identified at time of analysis, and the issue is fixed in nuxt@4.6.2.
RemediationAI
Upgrade to nuxt@4.6.2, which also pulls the fixed @nuxt/nitro-server 4.6.2; this is the complete fix and the vendor's primary recommendation (advisory: https://github.com/nuxt/nuxt/security/advisories/GHSA-w7gw-66vg-99gq). If upgrading is not immediately possible, two workarounds are documented: read a given route param from a single source for both the check and the lookup (for example, use event.context.params consistently instead of mixing it with getRouterParam), which removes the mismatch the attack depends on but requires auditing and changing application code paths; or add a server middleware that rejects requests whose path contains %3F, which blocks the known trigger but may break legitimate clients that encode question marks in parameter values. Neither workaround is a substitute for the 4.6.2 upgrade.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an interpretation conflict (CWE-436) that escalates into incorrect authorization (CWE-863) inside Nuxt's server routing layer, which is built on h3. The Nuxt helpers getRouterParam/getRouterParams, introduced in 4.6.0 in nuxt/server, deliberately preserve the original percent-encoding of params, so they re-align the raw request URL against the decoded path that h3 routed on. When a path segment carries %3F, h3 routes on the decoded path only up to that '?', while the raw URL is not truncated at the same offset; the helpers therefore read params from the wrong segments and can return a value that differs from event.context.params. Named ([id]), unnamed and catch-all ([...slug]) params are all affected - the advisory's example shows /api/auth/private%3Fignored/public matching slug=private in h3 while getRouterParam(event,'slug',{decode:true}) returned 'public'. The 4.6.2 fix rebuilds params from exactly the path h3 routed on and verifies that each value decodes to the param h3 matched, falling back to h3's params unchanged so the helpers can only differ in encoding, never in value. The CPE entries (cpe:2.3:a:nuxt:nuxt) cover the affected package range.
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:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N) but AC:H because it needs the %3F encoding trick plus a non-default dual-source param pattern; impact is unauthorized read access (C:L), no integrity/availability effect confirmed.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Nuxt from 4.6.0 before 4.6.2 contains a route parameter confusion vulnerability in getRouterParam and getRouterParams that lets attackers return a parameter value different from the one h3 matched by sending paths containing an encoded question mark (%3F). Attackers can craft requests where authorization checks use the Nuxt helper value while resource selection uses event.context.params, allowing access to unauthorized resources.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-114998
GHSA-r8g5-gwcc-5r5r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB