GHSA-hxcr-hm88-mpq6: High severity npm/nuxt vulnerability

Published Aug 5, 2026
·
Updated

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 nuxt@4.5.1 and nuxt@3.21.10. Island/server-component v-for sources are now clamped to a maximum iteration count (MAXVFORLENGTH = 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 /nuxtisland/ 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)

Affected Software

2 affected componentsFixes available
npm/nuxt>=3.1.0<3.21.10
3.21.10
npm/nuxt>=4.0.0<4.5.1
4.5.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/nuxt to a version that resolves this vulnerability.

    Fixed in 3.21.10
  2. Upgrade

    Upgrade npm/nuxt to a version that resolves this vulnerability.

    Fixed in 4.5.1
  3. Upgrade

    Upgrade nuxt to a version that resolves this vulnerability.

    Fixed in 4.5.1
  4. Upgrade

    Upgrade nuxt to a version that resolves this vulnerability.

    Fixed in 3.21.10
  5. Configuration

    Ensure Nuxt clamps island/server-component v-for iteration length at the render boundary using MAX_VFOR_LENGTH = 100000 (covers the plain v-for path, the <slot v-for> element, and the vforToArray slot-props helper).

    Nuxt island/server-component SSR v-for render boundary MAX_VFOR_LENGTH = 100000

Event History

Aug 5, 2026
Advisory Published
via GitHub·08:59 PM
Data Sourced
via GitHub·08:59 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of GHSA-hxcr-hm88-mpq6?

The severity of GHSA-hxcr-hm88-mpq6 is rated high, with a CVSS score of 7.5.

2

What is the impact of GHSA-hxcr-hm88-mpq6?

GHSA-hxcr-hm88-mpq6 allows an unauthenticated attacker to crash a Nuxt server that uses specific rendering patterns.

3

How do I fix GHSA-hxcr-hm88-mpq6?

To fix GHSA-hxcr-hm88-mpq6, you should update to the latest version of Nuxt that addresses this vulnerability.

4

Which software is affected by GHSA-hxcr-hm88-mpq6?

GHSA-hxcr-hm88-mpq6 affects the Nuxt framework in the npm ecosystem.

5

Can an authenticated user exploit GHSA-hxcr-hm88-mpq6?

No, an unauthenticated attacker can exploit GHSA-hxcr-hm88-mpq6, as no authentication is required to trigger the vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203