{"id":"CVE-2026-119200","kind":"vulnerability","aliases":["CVE-2026-119200"],"related":[],"title":"Nuxt: encoded dot segments bypass route checks and expose admin pages","description":"Nuxt is an open-source web development framework for Vue.js. From 4.6.0 until 4.6.3, Nuxt resolves literal or percent-encoded dot segments before rendering a page while Nitro routing, server/middleware checks, and server route rules evaluate the unresolved path. A request such as /%2e/admin can therefore render app/pages/admin.vue and its server-rendered data while checks keyed to /admin, redirects, or per-route security headers do not apply. API handlers, appMiddleware, Nuxt 3, and Nuxt 4.0.0 through 4.5.x are not affected, and exploitation requires a client that sends dot segments without browser normalization. This issue is fixed in version 4.6.3.","summary":"From Nuxt 4.6.0 through 4.6.3, dot segments such as /%2e/admin are resolved for page rendering but not for server middleware, route rules, or security headers. An attacker can reach a page and its server-rendered data while checks keyed to /admin are skipped.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["nuxt","package","self-hosted","ssr","vue"],"not_affected_if":["api-only","default-browser-clients","nuxt-below-4.6.0"],"how_to_check":"- Run `npm ls nuxt` or check the `nuxt` version in package.json and the lockfile.\n- Look for page routes that rely on server middleware, route rules, or per-route headers for access control.","fix":"- Nuxt `4.6.3`\n- Nuxt 4.0.0 through 4.5.x and API handlers and appMiddleware are not affected, per the source.","status":"open","published_at":"2026-10-29T21:17:18+00:00","first_seen_at":"2026-10-29T21:26:51+00:00","triaged_at":"2026-10-29T21:28:43+00:00","updated_at":"2026-10-29T21:28:43+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-29T21:28:43Z","model":"claude-haiku-5-5","output":{"fix":"- Nuxt `4.6.3`\n- Nuxt 4.0.0 through 4.5.x and API handlers and appMiddleware are not affected, per the source.","reach":"internet","title":"Nuxt: encoded dot segments bypass route checks and expose admin pages","impact":"medium","summary":"From Nuxt 4.6.0 through 4.6.3, dot segments such as /%2e/admin are resolved for page rendering but not for server middleware, route rules, or security headers. An attacker can reach a page and its server-rendered data while checks keyed to /admin are skipped.","audience":"developers","category":"package","nicknames":[],"who_cares":["nuxt","vue","self-hosted","ssr"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"Protected page and its server-rendered data reachable without the route checks","analyst_note":"","how_to_check":"- Run `npm ls nuxt` or check the `nuxt` version in package.json and the lockfile.\n- Look for page routes that rely on server middleware, route rules, or per-route headers for access control.","plain_action":"","needs_analyst":false,"not_affected_if":["nuxt-below-4.6.0","api-only","default-browser-clients"],"who_is_affected":"Applications built with Nuxt 4.6.0 through 4.6.3 that serve pages and enforce access through server middleware, route rules, or per-route security headers. API handlers and appMiddleware are not affected, and exploitation needs a client that sends dot segments without browser normalization.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000712,"input_tokens":4249,"output_tokens":575,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-119200':14A,17A '-2026':13A,16A '/admin':66B,129C '2e/admin':34B,114C '3':144C '4.0.0':147C '4.5':149C '4.6.0':27B,81C '4.6.3':29B,83C,172C 'admin':10A 'affect':153C 'api':140C 'app/pages/admin.vue':118C 'appli':139C 'appmiddlewar':142C 'attack':51B 'browser':164C 'bypass':5A 'check':7A,63B,101C,126C 'client':158C 'cve':12A,15A 'data':61B,124C 'develop':76C 'dot':3A,30B,91C,161C 'encod':2A,90C 'evalu':106C 'exploit':155C 'expos':9A 'fix':169C 'framework':77C 'handler':141C 'header':49B,136C 'host':22B 'issu':167C 'key':64B,127C 'liter':86C 'middlewar':44B 'nitro':98C 'normal':165C 'nuxt':1A,18B,26B,69C,84C,143C,146C 'open':73C 'open-sourc':72C 'packag':19B 'page':11A,38B,55B,96C 'path':109C 'per':133C 'per-rout':132C 'percent':89C 'percent-encod':88C 'reach':53B 'redirect':130C 'render':39B,60B,94C,117C,123C 'request':111C 'requir':156C 'resolv':36B,85C 'rout':6A,45B,99C,104C,134C 'rule':46B,105C 'secur':48B,135C 'segment':4A,31B,92C,162C 'self':21B 'self-host':20B 'send':160C 'server':43B,59B,103C,122C 'server-rend':58B,121C 'server/middleware':100C 'skip':68B 'sourc':74C 'ssr':23B 'therefor':116C 'unresolv':108C 'version':171C 'vue':24B 'vue.js':79C 'web':75C 'without':163C 'x':150C","nicknames":[],"mitigations":[],"who_affected":"Applications built with Nuxt 4.6.0 through 4.6.3 that serve pages and enforce access through server middleware, route rules, or per-route security headers. API handlers and appMiddleware are not affected, and exploitation needs a client that sends dot segments without browser normalization.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-10-29T21:17:18+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119200","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119200","severity":null,"published_at":"2026-10-29T21:17:18+00:00","modified_at":"2026-10-29T21:17:18+00:00","first_seen_at":"2026-10-29T21:26:51+00:00","fetched_at":"2026-10-29T21:26:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}