Impact
The flaw lies in the way Nuxt’s /__nuxt_island/ endpoint handles request parameters. Instead of binding responses to the supplied props and verifying that the URL’s hash matches the expected component hash, the framework allows any set of props to be supplied. This omission permits an attacker to supply arbitrary props that alter the rendered component, which in turn causes the same cache key to return different responses. The vulnerability’s primary consequence is shared‑cache poisoning, which can compromise the confidentiality and integrity of content delivered to other users who retrieve the same cached response, and it is classified under CWE‑349, CWE‑444, and CWE‑79.
Affected Systems
Nuxt framework, including Nuxt 3.1.0 through 3.21.5 and Nuxt 4.0.0‑alpha.1 through 4.4.5, as well as the @nuxt/nitro-server package from 3.20.0 through 3.21.5 and 4.0.0‑alpha.1 through 4.4.5. The defect is fixed in Nuxt 3.21.6, Nuxt 4.4.6, and the corresponding nitro-server releases.
Risk and Exploitability
The CVSS base score is 2.3, indicating low overall severity, and the EPSS score is less than 1%, suggesting that exploitation is unlikely but not impossible. The vulnerability is not listed in the CISA KEV catalog, meaning no widespread, publicly known exploits are documented. Attackers can craft a request to the /__nuxt_island/ endpoint with attacker‑controlled props and a matching hash, causing the server to render a different island component before caching it. If the cache key lacks the props, subsequent users may receive the altered content, leading to a cache poisoning attack. The attack vector is HTTP request manipulation; no privileged access or code execution is required. Given the low likelihood, organizations that heavily rely on shared caching should still consider applying the patch.
OpenCVE Enrichment
Github GHSA