Severity
Details
- CVSS score
- 7.5
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CWE ID
Overview
About vulnerability
Impact
An unauthenticated attacker can crash a Nuxt server that renders any island / server component containing a v-for over a prop (for example v-for="n in count" or a <slot v-for>). Because the island URL hash is a non-secret digest of the request, the attacker can compute a valid hash for arbitrary props and send the iterated prop as a large integer. The server then expands the v-for to that many nodes during SSR, allocating memory proportional to the attacker’s number. Reporter figures: count=8000000 produced a 142.9 MB response; count=40000000 (and items=4000000 on a slot list) produced an out-of-memory crash of the worker from a single ~130-byte request. Both the plain v-for path (Vue’s ssrRenderList) and the slot path (vforToArray) are affected.
Patches
Fixed in [email protected] and [email protected]. Island/server-component v-for sources are now clamped to a maximum iteration count (MAX_VFOR_LENGTH = 100000) at the render boundary, covering the plain path, the <slot v-for> element, and the vforToArray slot-props helper. Combined with the body-size cap (GHSA-9pgf-384g-p7mv), a single island render can no longer allocate without bound regardless of which v-for path is used or whether the prop arrives as an integer or an array.
Workarounds
Avoid v-for directly over an unclamped prop in server components, or clamp the count in the component (v-for="n in Math.min(count, 1000)"). A body-size limit in front of /__nuxt_island/ only mitigates array-shaped inputs, not the integer-amplification case.
References
- Bound helper:
packages/nuxt/src/app/components/vfor.ts - Transform:
packages/nuxt/src/components/plugins/islands-transform.ts - Slot helper:
packages/nuxt/src/app/components/utils.ts(vforToArray)
Details
- Affected product:
- ai-sdk-angular , ai-sdk-assemblyai , ai-sdk-cerebras , ai-sdk-deepgram , ai-sdk-deepinfra , ai-sdk-deepseek , ai-sdk-elevenlabs , ai-sdk-fal , ai-sdk-gateway , ai-sdk-gladia , ai-sdk-harness , ai-sdk-harness-codex , ai-sdk-harness-cursor , ai-sdk-harness-deepagents , ai-sdk-harness-fx , ai-sdk-harness-opencode , ai-sdk-harness-pi , ai-sdk-hume , ai-sdk-langchain , ai-sdk-llamaindex , ai-sdk-lmnt , ai-sdk-luma , ai-sdk-otel , ai-sdk-policy-opa , ai-sdk-replicate , ai-sdk-revai , ai-sdk-rsc , ai-sdk-sandbox-just-bash , ai-sdk-sandbox-vercel , ai-sdk-togetherai , ai-sdk-valibot , ai-sdk-vercel , ai-sdk-workflow , ai-sdk-workflow-harness , nuxt , nuxt-kit , nuxt-nitro-server , nuxt-rspack-builder , nuxt-schema , nuxt-vite-builder , nuxt-webpack-builder , telemetry , workflow , workflow-ai , workflow-astro , workflow-builders , workflow-cli , workflow-core , workflow-nest , workflow-next , workflow-nuxt , workflow-rollup , workflow-sveltekit , workflow-swc-plugin , workflow-utils , workflow-vite , workflow-vitest , workflow-web , workflow-web-shared , workflow-world , workflow-world-testing , workflow-world-vercel
- Affected packages:
- nuxt @ 3.12.3 (+849 more)