MEDIUMCVSS v3.1 6.5Vulnerability

CVE-2026-128077

### Summary Since `4.6.0`, Nuxt parses a request path that starts with `//` as a URL with a host before rendering a page, so `//x/admin` renders the page at `/admin`. Nitro's routing, Nitro's route rules and `server/middleware` see the path as `//x/admin`, so server-side checks keyed on `/admin` do not apply. The fix for [GHSA-9v7c-q64q-vv33](https://github.com/nuxt/nuxt/security/advisories/GHSA-9v7c-q64q-vv33) in `4.6.3` covered dot segments but not this form. ### Impact An unauthenticated attacker can bypass server-side controls that match on the request path of a page route. A route-scoped server handler is skipped: ```ts // nuxt.config.ts export default defineNuxtConfig({ serverHandlers: [{ route: '/admin', middleware: true, handler: '~~/server/admin-guard.ts' }], }) ``` ```ts // server/admin-guard.ts export default defineEventHandler((event) => { if (!isAuthenticated(event)) { throw createError({ statusCode: 401 }) } }) ``` With this handler, `/admin` returns 401, but `//x/admin` and `///x/admin` render `app/pages/admin.vue` along with the data it fetches during server rendering. `server/middleware` that checks `event.path.startsWith('/admin')` is skipped in the same way. Server-side `redirect` and `headers` route rules are also skipped, so `'/admin/**': { redirect: '/login' }` does not redirect `//x/admin/secret`, and per-route security headers such as `Content-Security-Policy` are not sent. Browsers send a path such as `//x/admin` as written, so a plain link is enough to reach the page. Not affected: - API handlers in `server/api` and `server/routes`, which Nitro does not match for these paths. - `appMiddleware` route rules and middleware declared with `definePageMeta`, which are matched against the resolved route. - Nuxt `3.x` and `4.0.0` to `4.5.x`, which pass the path to the page router unchanged, so these requests 404. ### Patches Fixed in `@nuxt/[email protected]`, which `[email protected]` depends on. The renderer now uses the request p

Properties

Severity
medium
Summary
Nuxt: Incomplete fix for GHSA-9v7c-q64q-vv33: a leading `//` in the request path bypasses `server/middleware` path checks and server route rules on page routes
Nvd fetched at
2026-11-14T00:40:25.638091+00:00
Cvss severity
MEDIUM
Cvss score
6.5
Retrieved at
2026-11-14T00:50:08+00:00
Ghsa published
2026-11-13T19:32:21Z
Source url
https://github.com/advisories/GHSA-r99w-jh2x-3mg9
Ghsa updated
2026-11-13T19:32:23Z
Ghsa id
GHSA-r99w-jh2x-3mg9
Last source
GitHub Advisory Database
Score
6.5
Cvss version
3.1
Cve id
CVE-2026-128077
Cvss vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
First seen by Signal
2026-11-13T20:38:23+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Published at
2026-11-13T18:17:37.163
Last modified
2026-11-13T18:17:37.287

Related Entities (4)

HAS_WEAKNESS (2)

AFFECTS (1)

VULNERABLE_TO (1)

Related research

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-128077 (CVSS v3.1 6.5) — Ninja Signal Threat Intelligence | Ninja Signal