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: Iniezione Comandi nei Batch File Rust

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

← Tutti gli articoli