CVE-2025-31125
Vite Vitejs
2026-01-22
Vite Vitejs contains an improper access control vulnerability that exposes content of non-allowed files using ?inline&import or ?raw?import. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2025-31125 в Vite связана с некорректным контролем доступа (Improper Access Control) в сервере разработки (dev server).
Злоумышленник может прочитать содержимое файлов, находящихся за пределами разрешенной рабочей директории проекта, отправляя специально сформированные HTTP-запросы с параметрами ?inline&import или ?raw?import.
Данная уязвимость представляет угрозу только в том случае, если сервер разработки Vite явно открыт для доступа из внешней сети (например, при запуске с флагом --host или при указании параметра server.host в конфигурации). По умолчанию Vite слушает только локальный интерфейс (localhost), что предотвращает удаленную эксплуатацию.
Как исправить
Основной и самый надежный способ устранения уязвимости — обновление пакета vite до актуальной версии, в которой внедрен патч безопасности.
Обновите зависимости вашего проекта, используя предпочитаемый пакетный менеджер.
Для npm:
npm update vite
Для yarn:
yarn upgrade vite
Для pnpm:
pnpm update vite
После выполнения команды убедитесь, что версия пакета успешно обновлена:
npm list vite
Временные меры
Если немедленное обновление пакета в проекте невозможно, необходимо применить компенсирующие меры для снижения риска эксплуатации:
- Изолируйте сервер разработки от внешней сети. Убедитесь, что dev-сервер доступен только локально (на
127.0.0.1илиlocalhost). - Проверьте файл
package.jsonи удалите флаг--host(или--host 0.0.0.0) из всех скриптов запуска (например,npm run dev). - Проверьте конфигурационный файл
vite.config.js(илиvite.config.ts) и убедитесь, что параметрserver.hostне установлен вtrueили0.0.0.0. При необходимости явно отключите его.
Пример безопасной настройки в vite.config.js:
export default {
server: {
host: false
}
}
- Строго соблюдайте архитектурные стандарты безопасности: сервер разработки Vite (
vite dev) предназначен исключительно для локальной разработки. Никогда не используйте его для обслуживания production-трафика. Для production-окружения всегда выполняйте сборку проекта (vite build) и раздавайте полученные статические файлы через полноценные веб-серверы (Nginx, Apache, Caddy).