CVE-2025-59414: Nuxt Client-Side Path Traversal in Nuxt Island Payload Revival

Published Sep 17, 2025
·
Updated

Summary

A client-side path traversal vulnerability in Nuxt's Island payload revival mechanism allowed attackers to manipulate client-side requests to different endpoints within the same application domain when specific prerendering conditions are met.

Technical Details

The vulnerability occurs in the client-side payload revival process (revive-payload.client.ts) where Nuxt Islands are automatically fetched when encountering serialized nuxtisland objects. The issue affects the following flow:

1. During prerendering, if an API endpoint returns user-controlled data containing a crafted nuxtisland object 2. This data gets serialized with devalue.stringify and stored in the prerendered page 3. When a client navigates to the prerendered page, devalue.parse deserializes the payload 4. The Island reviver attempts to fetch /nuxtisland/${key}.json where key could contain path traversal sequences

Prerequisites for Exploitation

This vulnerability requires all of the following conditions:

1. Prerendered pages: The application must use Nuxt's prerendering feature (nitro.prerender) 2. Attacker-controlled API responses: The attacker must be able to control the response content of an API endpoint that is called during prerendering via useFetch, useAsyncData, or similar composables 3. Client-side navigation: A user must navigate to the prerendered page (not during initial SSR hydration)

Attack Scenario

javascript // Malicious API response during prerendering { "nuxtisland": { "key": "../../../../internal/service", "params": { "action": "probe" } } }

This could cause the client to make requests to /nuxtisland/../../../../internal/service.json if path traversal is not properly handled by the server.

Impact Assessment

- Limited Impact: The vulnerability has a low severity due to the highly specific prerequisites - No Direct Data Exfiltration: The vulnerability does not directly expose sensitive data - Client-Side Only: Requests originate from the client, not the server

Mitigation

Action Required: - Update to Nuxt 3.19.0+ or 4.1.0+ immediately - Review any prerendered pages that fetch external or user-controlled data

Temporary Workarounds (if immediate update is not possible): 1. Disable prerendering for pages that fetch user-controlled data 2. Implement strict input validation on API endpoints used during prerendering 3. Use allowlists for API response structures during prerendering

Fix Details

The fix implemented validation for Island keys in revive-payload.server.ts: - Island keys must match the pattern /^[a-z][a-z\d-][a-z\d]+$/i - Maximum length of 100 characters - Prevents path traversal and special characters

Other sources

Nuxt is an open-source web development framework for Vue.js. Prior to 3.19.0 and 4.1.0, A client-side path traversal vulnerability in Nuxt's Island payload revival mechanism allowed attackers to manipulate client-side requests to different endpoints within the same application domain when specific prerendering conditions are met. The vulnerability occurs in the client-side payload revival process (revive-payload.client.ts) where Nuxt Islands are automatically fetched when encountering serialized nuxtisland objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted nuxtisland object, he data gets serialized with devalue.stringify and stored in the prerendered page. When a client navigates to the prerendered page, devalue.parse deserializes the payload. The Island reviver attempts to fetch /nuxtisland/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

MITRE

Affected Software

5 affected componentsFixes available
Nuxt Nuxt<3.19.0, <4.1.0
npm/nuxt>=4.0.0<4.1.0
4.1.0
npm/nuxt>=3.6.0<3.19.0
3.19.0
Nuxt Nuxt>=3.6.0<3.19.0
Nuxt Nuxt>=4.0.0<4.1.0

Event History

Sep 17, 2025
CVE Published
via MITRE·06:39 PM
Data Sourced
via MITRE·06:39 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·07:15 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·07:15 PM
RemedyAffected Software
Advisory Published
via GitHub·08:42 PM
Data Sourced
via GitHub·08:42 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 CVE-2025-59414?

CVE-2025-59414 is considered a high-severity vulnerability due to its potential for client-side path traversal attacks.

2

How do I fix CVE-2025-59414?

To mitigate CVE-2025-59414, update to Nuxt version 3.19.0 or 4.1.0 or later.

3

What kind of attacks can be executed using CVE-2025-59414?

CVE-2025-59414 allows attackers to manipulate client-side requests, potentially redirecting to unauthorized endpoints.

4

Which versions of Nuxt are affected by CVE-2025-59414?

Nuxt versions prior to 3.19.0 and 4.1.0 are affected by CVE-2025-59414.

5

Is there a known workaround for CVE-2025-59414?

There is no specific workaround documented for CVE-2025-59414; upgrading to a fixed version is recommended.

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