GHSA-rq7w-g337-39qq: Nuxt Dev Server Discloses Project Absolute Vulnerability
LOWGHSA-rq7w-g337-39qq is a LOW dev server discloses project absolute vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) affecting Nuxt libraries in the npm ecosystem. The issue involves dev server discloses project absolute path and persistent workspace uuid via `/.well-known/appspecific/com.chrome.devtools.json`. Remediation is available by upgrading affected packages to version 4.4.7.
GHSA-rq7w-g337-39qq at a Glance
How to Fix GHSA-rq7w-g337-39qq
To remediate this vulnerability, upgrade all affected Nuxt dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install nuxt@4.4.7
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls nuxt
How to Check if You Are Affected
To determine whether your Node.js application is affected by GHSA-rq7w-g337-39qq, inspect your project dependencies using npm:
npm ls nuxt
Analyze the terminal output to locate any version of Nuxt in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 4.4.7), your application is affected.
Note: The npm ls nuxt command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, where the product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. In Nuxt, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-rq7w-g337-39qq Affected Nuxt Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
nuxt
|
npm |
≥ 4.0.0-alpha.1
< 4.4.7
|
4.4.7
|
References
Frequently Asked Questions
What is GHSA-rq7w-g337-39qq?
Which Nuxt versions are affected?
What version fixes GHSA-rq7w-g337-39qq?
Is nuxt affected?
What CWE is associated with GHSA-rq7w-g337-39qq?
How can I check npm dependencies for GHSA-rq7w-g337-39qq?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-rq7w-g337-39qq",
"modified" : "2026-06-15T20:56:22Z",
"published" : "2026-06-15T20:56:22Z",
"aliases" : [ ],
"summary" : "Nuxt: Dev server discloses project absolute path and persistent workspace UUID via `/.well-known/appspecific/com.chrome.devtools.json`",
"details" : "### Summary\n\nWhen running `nuxt dev`, Nuxt registers an unauthenticated route at `/.well-known/appspecific/com.chrome.devtools.json` that returns the absolute filesystem path of the project root and a per-project UUID persisted to `node_modules/.cache/nuxt/chrome-workspace.json`. The route is enabled by default via `experimental.chromeDevtoolsProjectSettings: true`.\n\nThe endpoint exists to let Chrome DevTools' Workspace integration map sources to the developer's local checkout. The handler is registered directly on `nitro.options.devHandlers` and does not pass through the CORS / origin wrapper that the rest of the dev pipeline uses, so it has no host / origin / `Sec-Fetch-Site` check of its own.\n\n### Impact\n\nDev-server only. Production builds do not register the route.\n\nTwo values are disclosed:\n\n- `workspace.root`: the absolute filesystem path of the project (commonly reveals the OS username and the on-disk project name).\n- `workspace.uuid`: a v4 UUID persisted to `node_modules/.cache/nuxt/chrome-workspace.json`, stable across dev-server restarts and re-clones.\n\n### Threat model\n\nThe response carries no `Access-Control-Allow-Origin` header. A cross-origin `fetch()` from an arbitrary malicious page is therefore blocked by the browser's same-origin policy and cannot read the body. The two realistic recovery paths are:\n\n1. **LAN-adjacent attacker** when the developer runs `nuxt dev --host` (or otherwise binds to a non-loopback interface). A plain `curl http://<dev-lan-ip>:3000/.well-known/appspecific/com.chrome.devtools.json` returns the JSON; no browser, no CORS.\n2. **DNS rebinding** against the default loopback dev server. A page the developer visits resolves to the attacker, then re-resolves to `127.0.0.1` after the TTL; the browser believes the request is same-origin and reads the response.\n\n### Affected versions\n\n`nuxt@4.0.0-alpha.1` (PR #32084) through `nuxt@4.4.6`. `3.x` is not affected.\n\n### Reproduction\n\n```bash\nnpx nuxt dev\ncurl -s http://localhost:3000/.well-known/appspecific/com.chrome.devtools.json\n# {\"workspace\":{\"uuid\":\"...\",\"root\":\"/Users/<name>/...\"}}\n```\n\n### Workaround\n\nSet `experimental: { chromeDevtoolsProjectSettings: false }` in `nuxt.config.ts`. Chrome DevTools' Workspace auto-integration will stop working; the dev server is otherwise unaffected.\n\n### Patches\n\nFixed in `nuxt@4.4.7` by [#35201](https://github.com/nuxt/nuxt/pull/35201) (commit [`55c75b78`](https://github.com/nuxt/nuxt/commit/55c75b78c989b8bd210837b0e5faaebbf2b87b15)). The handler is now routed through the same host / origin gate the rest of the dev server uses, so the endpoint only responds to requests that look local.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "nuxt"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "4.0.0-alpha.1"
}, {
"fixed" : "4.4.7"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/nuxt/nuxt/security/advisories/GHSA-rq7w-g337-39qq"
}, {
"type" : "WEB",
"url" : "https://github.com/nuxt/nuxt/pull/35201"
}, {
"type" : "WEB",
"url" : "https://github.com/nuxt/nuxt/commit/55c75b78c989b8bd210837b0e5faaebbf2b87b15"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/nuxt/nuxt"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-200" ],
"severity" : "LOW",
"github_reviewed" : true,
"github_reviewed_at" : "2026-06-15T20:56:22Z",
"nvd_published_at" : null
}
}