Summary
CVE-2026-71314 is a high-severity, unauthenticated denial-of-service vulnerability in the Nuxt framework. Nuxt servers rendering island or server components that use a v-for loop bound to a prop can be crashed via unbounded server-side memory allocation. It affects Nuxt 3.1.0–3.21.9 and 4.0.0–4.5.0 and carries a CVSS v3.1 base score of 7.5 (High).
Technical details
- Root cause: Insufficient input validation on
v-foriteration counts during island/server-component server-side rendering. Both the standardv-forpath (Vue’sssrRenderList) and the<slot v-for>path (thevforToArrayhelper) are affected (CWE-400, CWE-770, CWE-789, CWE-1284). - Trigger conditions: The island URL hash is a non-secret digest of the request, so an attacker can compute a valid hash for arbitrary props and submit an iterated prop as a very large integer (or array) to the
/__nuxt_island/endpoint. - Attack vector: Network, unauthenticated, no user interaction. The server expands the
v-forto the requested number of nodes during SSR, allocating memory proportional to the attacker-supplied value. - Impact: Memory exhaustion causing out-of-memory worker crashes. The reporter demonstrated an OOM crash from a single request of roughly 130 bytes; availability is fully impacted.
Affected software
- Nuxt 3.x: 3.1.0 through 3.21.9
- Nuxt 4.x: 4.0.0 through 4.5.0
Severity
- CVSS v3.1 base score: 7.5 (High)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Mitigation and recommended actions
- Immediate: Upgrade to Nuxt 3.21.10 or 4.5.1, which clamp island/server-component
v-forsources to a maximum iteration count (MAX_VFOR_LENGTH = 100000) at the render boundary, covering the plain path, the<slot v-for>element, and thevforToArrayhelper. - If no patch: Avoid using
v-fordirectly over an unclamped prop in server components, or clamp the count within the component (for examplev-for="n in Math.min(count, 1000)"). Note that applying a body-size limit in front of/__nuxt_island/only mitigates array-shaped inputs, not the large-integer form.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw response body:
<div id="__nuxt",<script>window.__NUXT__ - URL of a loaded script:
/_nuxt/ - JavaScript object present once the page runs:
$nuxt

