BatBadBut è una vulnerabilità critica che permette a un attaccante di eseguire iniezione di comandi su applicazioni Windows che dipendono indirettamente dalla funzione CreateProcess. Questa vulnerabilità è stata scoperta da un ingegnere della sicurezza di Flatt Security noto come RyotaK. Quando si verificano condizioni specifiche, BatBadBut consente di iniettare comandi nei file batch su Windows, mettendo a rischio la sicurezza del sistema.
Dettagli chiave
Ecco alcuni dettagli chiave sulla vulnerabilità BatBadBut:
– Origine del nome: Il nome “BatBadBut” deriva dalla combinazione di “Bat” (file batch) e “BadBut”, evidenziando il comportamento indesiderato che la vulnerabilità può causare nei comandi Windows.
– Condizioni di exploit: L’exploit di BatBadBut avviene solo quando si verificano le seguenti condizioni:
1. L’applicazione esegue un comando su Windows.
2. L’applicazione non specifica l’estensione del file del comando o l’estensione del file è `.bat` o `.cmd`.
3. Il comando eseguito contiene input controllati dall’utente come parte degli argomenti del comando.
4. L’ambiente di runtime del linguaggio di programmazione non effettua correttamente l’escape degli argomenti del comando per `cmd.exe`.
-Versioni interessate: BatBadBut colpisce solo le versioni di Rust precedenti alla 1.77.2; nessun’altra piattaforma o utilizzo è interessato.
Raccomandazioni
Se sei uno sviluppatore o un utente, è importante prendere misure precauzionali per proteggere i sistemi da questa vulnerabilità. Ad esempio, evita l’esecuzione inaspettata dei file batch spostandoli in una directory non inclusa nella variabile d’ambiente PATH. In questo modo, i file batch non verranno eseguiti a meno che non venga specificato il percorso completo, riducendo il rischio di exploit della vulnerabilità.
GitHub lo ha registrato come CVE-2024-24576 , con un punteggio di gravità (CVSS) di 10,0.
Anche il CERT/CC della Carnegie Mellon University ha pubblicato un avviso sull’argomento rimarcando che vari linguaggi di programmazione non dispongono di meccanismi di convalida adeguati per i comandi e la vulnerabilità del command injection in questi linguaggi di programmazione, quando eseguiti su Windows, consente agli aggressori di eseguire codice arbitrario.
Ricorda sempre di mantenere le tue librerie e linguaggi di programmazione aggiornati per mitigare i rischi derivanti da BatBadBut.