Medium severity · published Oct 29, 2026
CVE-2026-119199
Nuxt dev server exposes private runtime config through the Nitro dev bundle
New
5.9
CVSS
–
EPSS
No
On KEV
Description
Nuxt is an open-source web development framework for Vue.js. From 3.0.0 until 4.6.3, the Nuxt development server can expose the Nitro 2 development bundle at <buildDir>/dev/index.mjs through Vite file serving when the server is reachable over HTTP. Nitro inlines private runtimeConfig values resolved at build time into that bundle, including secrets configured in nuxt.config, and Nuxt 4.6.0 and later also inline the generated development appSecret. The default localhost binding limits remote exposure, production builds and Nitro 3 are not affected, and runtime configuration supplied only through NUXT_* environment variables at server startup is not inlined. This issue is fixed in version 4.6.3.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Attack vector
Network
Complexity
High
Privileges
None
User interaction
None
Confidentiality
High
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
NU
nuxt · nuxt
>= 3.0.0, < 4.6.3 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-119199
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-119199
github.com
https://github.com/nuxt/nuxt/commit/12b58f9d8768682611c3ad4ea4d403875129dbca
github.com
https://github.com/nuxt/nuxt/releases/tag/v4.6.3
github.com
https://github.com/nuxt/nuxt/security/advisories/GHSA-648h-gw55-m2g7
More from nuxt
9.8
CVE-2023-3224
Code Injection in nuxt/nuxt
8.8
CVE-2024-34344
Remote code execution via the browser when running the test locally in nuxt
8.8
CVE-2024-23657
Path Traversal: '../filedir' in Nuxt Devtools
8.2
CVE-2026-71315
Nuxt route rules silently dropped for mixed-case paths, bypassing appMiddleware auth gates (incomplete fix for CVE-2026-53721)
8.2
CVE-2026-53721
Nuxt: Route-rule middleware bypass via case-sensitivity mismatch between vue-router and the routeRules matcher
