CVE-2026-114131 json
Nuxt: Route rules are matched against the raw request path, so a percent-encoded segment can bypass `appMiddleware` on dynamic and catch-all routes
published 19d ago modified 10d ago also EUVD-2026-107414 , GHSA-6gq8-jgmh-3ffp
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 30%
- public exploits
- 0
- none known
Summary
Nuxt is an open-source web development framework for Vue.js. From 3.11.0 until 3.21.4 and 4.4.4, Nuxt compares route-rule keys with the raw request path while route resolution decodes dynamic and catch-all parameters, allowing a percent-encoded segment to resolve to a protected page without matching the routeRules entry intended for that path. As a result, appMiddleware can be skipped during server rendering and an unauthenticated requester can receive the gated page and its SSR data. The same mismatch affects app-manifest rules including redirect, appLayout, ssr, prerender, and payload flags derived from cache, isr, and swr. This vulnerability is fixed in 4.4.4 and 3.21.4.
Patch / fix
- npm nuxt 3.21.4, 4.4.4
- nuxt nuxt 3.21.4, 4.4.4
Is CVE-2026-114131 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 10d ago
Exploit prediction
0.36% chance of exploitation in the next 30 days, higher than 30% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | nuxt | >=4.0.0, <4.4.4 >=3.11.0, <3.21.4 |
4.4.4 3.21.4 |
Affected products
- nuxt nuxt
Classification
References
-
github.com
/nuxt/nuxt/commit/81f86ac5ee82bb1a9b887e59f3bc84624d711497
web
-
github.com
/nuxt/nuxt/commit/9123ed850c468a7424a868c20d0d49a5507d32e5
web
-
github.com
/nuxt/nuxt/security/advisories/GHSA-6gq8-jgmh-3ffp
web
-
github.com
/nuxt/nuxt/releases/tag/v3.21.11
web
-
github.com
/nuxt/nuxt/releases/tag/v4.5.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-114131
advisory
-
github.com
/nuxt/nuxt
package
Sources
- CVE List CVE-2026-114131
- GitHub Advisory GHSA-6gq8-jgmh-3ffp
- NVD CVE-2026-114131
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.