Every CVE Search/ Get API key

CVE-2025-59414

Nuxt Client-Side Path Traversal in Nuxt Island Payload Revival

3.1 LowFix available

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 __nuxt_island objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
Low
Integrity
None
Availability
None

Exploit likelihood

0.37%Up 0.3 points since Sep 18, 2025
90%50%10%1%

What each source reports

CVE List Score used 3.1

Nuxt Client-Side Path Traversal in Nuxt Island Payload Revival

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 __nuxt_island objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

Record
CVE-2025-59414
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
EUVDEUVD-2025-29762 3.1

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 __nuxt_island objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

Record
EUVD-2025-29762
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-p6jq-8vc4-79f6 3.1

Nuxt has Client-Side Path Traversal in Nuxt Island Payload Revival

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 __nuxt_island objects. The issue affects the following flow:

  1. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${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

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

This could cause the client to make requests to /__nuxt_island/../../../../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
Record
GHSA-p6jq-8vc4-79f6
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
NVD 3.1

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 __nuxt_island objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

Record
CVE-2025-59414
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
OSV 3.1

Nuxt Client-Side Path Traversal in Nuxt Island Payload Revival

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 __nuxt_island objects. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${key}.json where key could contain path traversal sequences. Update to Nuxt 3.19.0+ or 4.1.0+.

Record
CVE-2025-59414
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
OSVGHSA-p6jq-8vc4-79f6 3.1

Nuxt has Client-Side Path Traversal in Nuxt Island Payload Revival

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 __nuxt_island objects. The issue affects the following flow:

  1. During prerendering, if an API endpoint returns user-controlled data containing a crafted __nuxt_island 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 /__nuxt_island/${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

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

This could cause the client to make requests to /__nuxt_island/../../../../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
Record
GHSA-p6jq-8vc4-79f6
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
Show 16 moreShow less
OSVCLSA-2026-1775867594 No score

TuxCare security update for nuxt (4 CVEs)

TuxCare rebuilt nuxt to address 4 CVEs. Fixed in 3.12.3-tuxcare.1.

Record
CLSA-2026-1775867594
Updated
2026-11-02
OSVCLSA-2026-1775867597 No score

TuxCare security update for nuxt (1 CVE)

TuxCare rebuilt nuxt to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1775867597
Updated
2026-11-02
OSVCLSA-2026-1788450984 No score

TuxCare security update for nuxt (11 CVEs)

TuxCare rebuilt nuxt to address 11 CVEs. Fixed in 3.12.4-tuxcare.12.

Record
CLSA-2026-1788450984
Updated
2026-11-02
OSVCLSA-2026-1792161441 No score

TuxCare security update for @nuxt/kit (4 CVEs)

TuxCare rebuilt @nuxt/kit to address 4 CVEs. Fixed in 3.12.3-tuxcare.1.

Record
CLSA-2026-1792161441
Updated
2026-11-02
OSVCLSA-2026-1792161442 No score

TuxCare security update for @nuxt/kit (1 CVE)

TuxCare rebuilt @nuxt/kit to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792161442
Updated
2026-11-02
OSVCLSA-2026-1792161460 No score

TuxCare security update for @nuxt/kit (11 CVEs)

TuxCare rebuilt @nuxt/kit to address 11 CVEs. Fixed in 3.12.4-tuxcare.12.

Record
CLSA-2026-1792161460
Updated
2026-11-02
OSVCLSA-2026-1792161481 No score

TuxCare security update for @nuxt/rspack-builder (1 CVE)

TuxCare rebuilt @nuxt/rspack-builder to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792161481
Updated
2026-11-02
OSVCLSA-2026-1792161581 No score

TuxCare security update for @nuxt/schema (4 CVEs)

TuxCare rebuilt @nuxt/schema to address 4 CVEs. Fixed in 3.12.3-tuxcare.1.

Record
CLSA-2026-1792161581
Updated
2026-11-02
OSVCLSA-2026-1792161582 No score

TuxCare security update for @nuxt/schema (1 CVE)

TuxCare rebuilt @nuxt/schema to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792161582
Updated
2026-11-02
OSVCLSA-2026-1792161601 No score

TuxCare security update for @nuxt/schema (11 CVEs)

TuxCare rebuilt @nuxt/schema to address 11 CVEs. Fixed in 3.12.4-tuxcare.12.

Record
CLSA-2026-1792161601
Updated
2026-11-02
OSVCLSA-2026-1792161804 No score

TuxCare security update for @nuxt/vite-builder (4 CVEs)

TuxCare rebuilt @nuxt/vite-builder to address 4 CVEs. Fixed in 3.12.3-tuxcare.1.

Record
CLSA-2026-1792161804
Updated
2026-11-02
OSVCLSA-2026-1792161806 No score

TuxCare security update for @nuxt/vite-builder (1 CVE)

TuxCare rebuilt @nuxt/vite-builder to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792161806
Updated
2026-11-02
OSVCLSA-2026-1792161823 No score

TuxCare security update for @nuxt/vite-builder (11 CVEs)

TuxCare rebuilt @nuxt/vite-builder to address 11 CVEs. Fixed in 3.12.4-tuxcare.12.

Record
CLSA-2026-1792161823
Updated
2026-11-02
OSVCLSA-2026-1792161917 No score

TuxCare security update for @nuxt/webpack-builder (4 CVEs)

TuxCare rebuilt @nuxt/webpack-builder to address 4 CVEs. Fixed in 3.12.3-tuxcare.1.

Record
CLSA-2026-1792161917
Updated
2026-11-02
OSVCLSA-2026-1792161919 No score

TuxCare security update for @nuxt/webpack-builder (1 CVE)

TuxCare rebuilt @nuxt/webpack-builder to address 1 CVE. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792161919
Updated
2026-11-02
OSVCLSA-2026-1792161936 No score

TuxCare security update for @nuxt/webpack-builder (11 CVEs)

TuxCare rebuilt @nuxt/webpack-builder to address 11 CVEs. Fixed in 3.12.4-tuxcare.12.

Record
CLSA-2026-1792161936
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
nuxt
npm
3.6.0 up to 3.19.0
3.19.0
nuxt
npm
4.0.0 up to 4.1.0
4.1.0
nuxt
TuxCare:npm
From an advisory covering 4 CVEs
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.1, plus listed versions
3.12.3
3.12.3-tuxcare.1
nuxt
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
nuxt
TuxCare:npm
From an advisory covering 11 CVEs
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.12, plus listed versions
3.12.43.12.4-tuxcare.103.12.4-tuxcare.113.12.4-tuxcare.23.12.4-tuxcare.3
Show 6 moreShow less
3.12.4-tuxcare.43.12.4-tuxcare.53.12.4-tuxcare.63.12.4-tuxcare.73.12.4-tuxcare.83.12.4-tuxcare.9
3.12.4-tuxcare.12
@nuxt/kit
TuxCare:npm
From an advisory covering 4 CVEs
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.1, plus listed versions
3.12.3
3.12.3-tuxcare.1
@nuxt/kit
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
@nuxt/kit
TuxCare:npm
From an advisory covering 11 CVEs
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.12, plus listed versions
3.12.43.12.4-tuxcare.113.12.4-tuxcare.23.12.4-tuxcare.33.12.4-tuxcare.63.12.4-tuxcare.73.12.4-tuxcare.83.12.4-tuxcare.9
3.12.4-tuxcare.12
@nuxt/rspack-builder
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
@nuxt/schema
TuxCare:npm
From an advisory covering 4 CVEs
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.1, plus listed versions
3.12.3
3.12.3-tuxcare.1
Show 8 moreShow less
Affected packages
PackageAffectedFixed
@nuxt/schema
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
@nuxt/schema
TuxCare:npm
From an advisory covering 11 CVEs
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.12, plus listed versions
3.12.43.12.4-tuxcare.103.12.4-tuxcare.113.12.4-tuxcare.23.12.4-tuxcare.3
Show 4 moreShow less
3.12.4-tuxcare.63.12.4-tuxcare.73.12.4-tuxcare.83.12.4-tuxcare.9
3.12.4-tuxcare.12
@nuxt/vite-builder
TuxCare:npm
From an advisory covering 4 CVEs
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.1, plus listed versions
3.12.3
3.12.3-tuxcare.1
@nuxt/vite-builder
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
@nuxt/vite-builder
TuxCare:npm
From an advisory covering 11 CVEs
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.12, plus listed versions
3.12.43.12.4-tuxcare.103.12.4-tuxcare.113.12.4-tuxcare.23.12.4-tuxcare.3
Show 4 moreShow less
3.12.4-tuxcare.63.12.4-tuxcare.73.12.4-tuxcare.83.12.4-tuxcare.9
3.12.4-tuxcare.12
@nuxt/webpack-builder
TuxCare:npm
From an advisory covering 4 CVEs
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.1, plus listed versions
3.12.3
3.12.3-tuxcare.1
@nuxt/webpack-builder
TuxCare:npm
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions
4.0.3
4.0.3-tuxcare.1
@nuxt/webpack-builder
TuxCare:npm
From an advisory covering 11 CVEs
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.12, plus listed versions
3.12.43.12.4-tuxcare.113.12.4-tuxcare.23.12.4-tuxcare.33.12.4-tuxcare.4
Show 5 moreShow less
3.12.4-tuxcare.53.12.4-tuxcare.63.12.4-tuxcare.73.12.4-tuxcare.83.12.4-tuxcare.9
3.12.4-tuxcare.12

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2025-59414 is a low vulnerability (CVSS 3.1) in @clerk Nuxt, published September 17, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 30th percentile. Fixed in nuxt 3.19.0.

References

MoveEnter Open