Summary
CVE-2026-53721 is a high-severity authentication bypass vulnerability in Nuxt.js, the open-source Vue.js web development framework. Affecting versions 3.11.0 through 3.21.6 and 4.0.0 through 4.4.6, the flaw allows unauthenticated, network-based attackers to bypass route-rule middleware protections entirely by exploiting a case-sensitivity mismatch between vue-router and the routeRules matcher. It carries a CVSS v4.0 score of 8.8 (HIGH).
Technical details
- Root cause: Vue-router resolves routes using case-insensitive path matching (its default
sensitive: falsesetting), while Nuxt’s compiledrouteRulesmatcher — built on therou3library — performs case-sensitive comparisons. The two components therefore disagree on whether a given URL matches a protected route. - Trigger conditions: An application is vulnerable when it uses
routeRules.appMiddlewareto enforce access controls (e.g., authentication gates, authorization checks). No special configuration or elevated privileges are required; any deployment relying onrouteRulesfor access control within the affected version range is at risk. - Attack vector: A remote, unauthenticated attacker submits an HTTP request with altered casing in a static segment of a protected URL — for example, requesting
/Admin/dashboardinstead of/admin/dashboard. The vue-router matches and renders the route, but therouteRuleslookup (getRouteRules({ path: to.path })) fails to find a corresponding rule, causing the middleware to be skipped entirely. - Impact: The server returns a fully server-side-rendered page without executing the intended middleware, potentially exposing protected content, sensitive SSR-captured data, or restricted functionality. Affected route rules include
appMiddleware,ssr,redirect,appLayout, and prerender/payload hints. Authorization logic defined viadefinePageMeta({ middleware })on individual components is not affected by this bypass.
Affected software
- Nuxt.js 3.11.0 through 3.21.6 (inclusive)
- Nuxt.js 4.0.0 through 4.4.6 (inclusive)
Severity
- CVSS v4.0 score: 8.8 (HIGH)
- CVSS v4.0 vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N - CWE-178: Improper Handling of Case Sensitivity
- CWE-863: Incorrect Authorization
Mitigation and recommended actions
- Immediate – upgrade to a patched version:
- Nuxt 3.x users: upgrade to 3.21.7 or later
- Nuxt 4.x users: upgrade to 4.4.7 or later
- Interim workarounds (if patching is not immediately possible):
- Enable case-sensitive routing globally by setting
router.options.sensitive = truein your Nuxt configuration, aligning vue-router’s behavior with therouteRulesmatcher. - Relocate all authorization logic from
routeRules.appMiddlewaretodefinePageMeta({ middleware })on each protected page component, which is not affected by this bypass. - Enforce authorization at the API and data-fetching layer as a defence-in-depth measure, independent of route-level middleware.
- Enable case-sensitive routing globally by setting
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

