GHSA-9pgf-384g-p7mv: High severity npm/nuxt vulnerability

Published Aug 5, 2026
·
Updated

Impact

The internal island renderer endpoint (/nuxtisland/...) decodes and hashes attacker-controlled request input before it validates the URL-resident hash. An unauthenticated POST /nuxtisland/<name><anything>.json with a large JSON body (for example ~4.6 MB / 150k keys) is fully read, destr-parsed, and run through ohash before the request is rejected with a 400. Because Nitro runs on a single event loop, this both wastes CPU on the doomed request and delays every concurrent request. A low request rate is enough to degrade or stall the server. No valid hash and no authentication are required.

Patches

Fixed in nuxt@4.5.1 and nuxt@3.21.10. The island handler now enforces a raw body-size cap (413) and a JSON nesting-depth cap (400) before parsing or hashing, so oversized or deeply nested input is rejected cheaply.

Workarounds

Put a small request-body limit in front of /nuxtisland/ at your reverse proxy / edge (islands legitimately send only a compact props payload), or disable server components if unused.

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 the island handler enforces a raw body-size limit and rejects oversized requests with HTTP 413 before parsing/hashing.

    Nuxt server island endpoint (`/__nuxt_island/...`) enforce raw request body-size cap (reject with 413) = 413
  6. Configuration

    Ensure the island handler enforces a JSON nesting-depth limit and rejects deeply nested input with HTTP 400 before parsing/hashing.

    Nuxt server island endpoint (`/__nuxt_island/...`) enforce JSON nesting-depth cap (reject with 400) = 400
  7. Compensating control

    At the reverse proxy/edge, place a small request-body limit in front of the path `/__nuxt_island/` (islands legitimately send only a compact props payload) to mitigate large-body requests that get read/parsed/hashed.

Event History

Aug 5, 2026
Advisory Published
via GitHub·09:43 PM
Data Sourced
via GitHub·09:43 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.

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