Vite allows server.fs.deny to be bypassed with .svg or relative paths
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.
- Опубликовано
- 3 апр. 2025 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 40,5 % · 99-й процентиль
- CWE
- CWE-200
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
33
Наблюдать
Пока низкий приоритет.
- CVSS
- 21 / 40 · 5.3 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 12 / 30 · 40,5 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 5,3
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
vitejs vite
- < 4.5.12, >=5.0.0, < 5.4.17, >=6.0.0, < 6.0.14, >=6.1.0, < 6.1.4, >=6.2.0, < 6.2.5затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| npm | vite | с 5.0.0 · до 5.4.17 | 5.4.17 |
| npm | vite | с 6.0.0 · до 6.0.14 | 6.0.14 |
| npm | vite | с 6.1.0 · до 6.1.4 | 6.1.4 |
| npm | vite | с 6.2.0 · до 6.2.5 | 6.2.5 |
| npm | vite | до 4.5.12 | 4.5.12 |
Тот же продукт
vitejs: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2025-31125Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` queryKEV79На этой неделе
- CVE-2025-30208Vite bypasses server.fs.deny when using `?raw??`52В плане
- CVE-2026-39363Vite Affected by Arbitrary File Read via Vite Dev Server WebSocket33Наблюдать
- CVE-2026-53571Vite: `server.fs.deny` bypass on Windows alternate paths32Наблюдать
- CVE-2026-39364Vite has a `server.fs.deny` bypass with queries32Наблюдать
- CVE-2023-34092Vite Server Options (server.fs.deny) can be bypassed using double forward-slash (//)31Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| vitejs vite | 4.5.12 · description | Вендор (CNA) |
| npm:vite | 4.5.12 | Реестр пакетов (OSV) |
| npm:vite | 5.4.17 | Реестр пакетов (OSV) |
| npm:vite | 6.0.14 | Реестр пакетов (OSV) |
| npm:vite | 6.1.4 | Реестр пакетов (OSV) |
| npm:vite | 6.2.5 | Реестр пакетов (OSV) |
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Шаблон обнаружения Nuclei ×1
- Репозиторий PoC на GitHub ×3
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Шаблон обнаружения Nuclei | Шаблон Nuclei CVE-2025-31486 | — |
| Репозиторий PoC на GitHub | stars:6 | 2025-04-07 |
| Репозиторий PoC на GitHub | stars:0 | 2025-04-26 |
| Репозиторий PoC на GitHub | stars:0 | 2025-07-24 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Первый PoC+3 дн.
- Сегодня30 сент. 2026 г.+545 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2025-31125с разницей 3 дн.Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` queryKEV79На этой неделе
- CVE-2025-30208с разницей 10 дн.Vite bypasses server.fs.deny when using `?raw??`52В плане
- CVE-2026-39363с разницей 369 дн.Vite Affected by Arbitrary File Read via Vite Dev Server WebSocket33Наблюдать
- CVE-2025-32395с разницей 7 дн.Vite has an `server.fs.deny` bypass with an invalid `request-target`25Наблюдать
- CVE-2024-31207с разницей 364 дн.Vite's `server.fs.deny` did not deny requests for patterns with directories23Наблюдать
- CVE-2024-45811с разницей 198 дн.server.fs.deny bypassed when using ?import&raw in vite19Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Требуются особые условия, например определённое время или конфигурация.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- нет
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Высокая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Нет
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-200 · Exposure of Sensitive Information to an Unauthorized ActorВектор CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
nvd-secondary
Первопричина
Расширение запрашивает более широкие разрешения, чем требуется для его функции, и отправляет собранные данные вовне для целей, не связанных с его назначением.
Ошибка в коде
Весь класс CWE-200Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
{ "permissions": ["tabs", "<all_urls>"], "background": { "service_worker": "analytics.js" }}Исправленный код
{ "permissions": ["activeTab"], "host_permissions": ["https://yildiz.example/*"]}Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- ExcavationCAPEC-116вероятность: High · Medium
- Subverting Environment Variable ValuesCAPEC-13вероятность: High · Very High
- FootprintingCAPEC-169вероятность: High · Very Low
- Exploiting Trust in ClientCAPEC-22вероятность: High · High
- FingerprintingCAPEC-224вероятность: High · Very Low
- ICMP Echo Request PingCAPEC-285вероятность: Medium · Low
- TCP SYN ScanCAPEC-287Low
- Enumerate Mail Exchange (MX) RecordsCAPEC-290Low
Техники ATT&CK
- System Service DiscoveryT1007
- System Network Configuration DiscoveryT1016
- Remote System DiscoveryT1018
- System Owner/User DiscoveryT1033
- Masquerading: Match Legitimate Name or LocationT1036.005
- Network Service ScanningT1046
- System Network Connections DiscoveryT1049
- Process DiscoveryT1057
- Permission Groups DiscoveryT1069
- System Information DiscoveryT1082
- File and Directory DiscoveryT1083
- Account DiscoveryT1087
- Multi-Factor Authentication InterceptionT1111
- Peripheral Device DiscoveryT1120
- System Time DiscoveryT1124
- Access Token Manipulation:Token Impersonation/TheftT1134.001
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
- github.com/vitejs/vite/commit/62d7e81ee189d65899bb65f3263ddbd85247b647
- github.com/vitejs/vite/security/advisories/GHSA-xcj6-pq6g-qj4x
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.