home / blog
2026-11-06 · critica
CVE-2024-24576: Iniezione Comandi nei Batch File Rust
Rust <1.77.2: escaping insufficiente batch file Windows, command injection possibile. CVSS 10,0.

CVE-2024-24576 identifica una vulnerabilità critica nella Rust standard library versioni precedenti alla 1.77.2. La falla riguarda il meccanismo di escaping degli argomenti quando si invocano batch file (.bat e .cmd) su Windows tramite l'API Command. Se un attacker riesce a controllare gli argomenti passati al processo spawned, può eseguire comandi shell arbitrari bypassando le protezioni di escaping. Questa vulnerabilità colpisce esclusivamente sistemi Windows e solo scenari in cui si invocano batch file con argomenti untrusted.
La gravità è critical con punteggio CVSS 10,0, il massimo sulla scala di vulnerabilità. La falla esiste nel codice di escaping che, a causa della complessità di cmd.exe (interprete dei batch file), non risultava sufficientemente robusto. La correzione è disponibile da Rust 1.77.2 (febbraio 2024). Di recente (6 novembre 2026) è stata segnalata su GitHub la presenza di un modello offline per testare il comportamento del quoting nei batch file, indicando attenzione costante della comunità sulla falla anche a distanza di tempo.
Per la difesa: 1) verificare immediatamente la versione di Rust in uso su Windows; 2) se versione < 1.77.2 e il codice invoca batch file con dati esterni, aggiornare Rust; 3) analizzare il codice applicativo per identificare tutti i punti dove argomenti untrusted vengono passati a batch file e valutare mitigazioni; 4) se l'upgrade non è immediatamente praticabile, CommandExt::raw_arg consente di bypassare l'escaping, ma solo se gli argomenti provengono da source trusted. Non è consigliato con dati untrusted.
In sintesi
- Cosa
- La Rust standard library prior to 1.77.2 non esegue correttamente l'escaping degli argomenti quando si invocano batch file (estensione .bat e .cmd) su Windows tramite l'API Command. Un attacker in grado di controllare gli argomenti può eseguire comandi shell arbitrari bypassando l'escaping.
- Gravità
- Critical (CVSS 10,0). L'impatto è massimo per chi invoca batch file su Windows con argomenti non trusted. La vulnerabilità non colpisce altre piattaforme o utilizzi di Rust.
- Versioni interessate
- Rust standard library prior to version 1.77.2. Colpisce solo il deployment su Windows quando si invocano batch file con dati untrusted tramite Command API.
- Correzione
- Upgrade a Rust 1.77.2 o successivo. La correzione migliora la robustezza del codice di escaping per i batch file e restituisce un errore InvalidInput quando non può escaping sicuramente un argomento. Chi implementa escaping autonomamente o gestisce solo input trusted su Windows può usare CommandExt::raw_arg per bypassare l'escaping della standard library.
- Stato
- Patch disponibile dal 2024. Descritto in NVD (pubblicato 2024-04-09). Segnale GitHub recente (2026-11-06) indica interesse comunità: modello offline per test di quoting batch file.
- Azione
- Verificare versione Rust in uso su Windows. Se < 1.77.2 e si invocano batch file con dati esterni, aggiornare immediatamente. Rivedere codice che passa argomenti untrusted a batch file. Se non applicabile upgrade, valutare CommandExt::raw_arg solo se input è trusted.
Fonti: NVD, CVE-2024-24576