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

exploitDog

github логотип

GHSA-xcj6-pq6g-qj4x

Опубликовано: 04 апр. 2025
Источник: github
Github: Прошло ревью
CVSS3: 5.3

Описание

Vite allows server.fs.deny to be bypassed with .svg or relative paths

Summary

The contents of arbitrary files can be returned to the browser.

Impact

Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.

Details

.svg

Requests ending with .svg are loaded at this line. https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290 By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the restriction was able to bypass.

This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+.

relative paths

The check was applied before the id normalization. This allowed requests to bypass with relative paths (e.g. ../../).

PoC

npm create vite@latest cd vite-project/ npm install npm run dev

send request to read etc/passwd

curl 'http://127.0.0.1:5173/etc/passwd?.svg?.wasm?init'
curl 'http://127.0.0.1:5173/@fs/x/x/x/vite-project/?/../../../../../etc/passwd?import&?raw'

Пакеты

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

vite

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

>= 6.2.0, < 6.2.5

6.2.5

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

vite

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

>= 6.1.0, < 6.1.4

6.1.4

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

vite

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

>= 6.0.0, < 6.0.14

6.0.14

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

vite

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

>= 5.0.0, < 5.4.17

5.4.17

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

vite

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

< 4.5.12

4.5.12

EPSS

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

5.3 Medium

CVSS3

Дефекты

CWE-200
CWE-284

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

CVSS3: 5.3
redhat
5 месяцев назад

Vite is a frontend tooling framework for javascript. The contents of arbitrary files can be returned to the browser. By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the server.fs.deny restriction was able to bypass. This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. This vulnerability is fixed in 4.5.12, 5.4.17, 6.0.14, 6.1.4, and 6.2.5.

CVSS3: 5.3
nvd
5 месяцев назад

Vite is a frontend tooling framework for javascript. The contents of arbitrary files can be returned to the browser. By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the server.fs.deny restriction was able to bypass. This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. This vulnerability is fixed in 4.5.12, 5.4.17, 6.0.14, 6.1.4, and 6.2.5.

CVSS3: 5.3
debian
5 месяцев назад

Vite is a frontend tooling framework for javascript. The contents of a ...

EPSS

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

5.3 Medium

CVSS3

Дефекты

CWE-200
CWE-284