Logo
Hamburger Menu Icon
Yoroi Background

Vulnerabilità di Commad Injection in Rust

PROTO: N240411

CERT-Yoroi informa che è stata resa nota una vulnerabilità critica sul linguaggio di programmazione Rust.

Tale vulnerabilità, pubblicata all’interno del security advisory e nota con l’identificativo CVE-2024-24576, interessa la libreria standard di Rust nelle versioni precedenti alla 1.77.2 che non esegue correttamente la sanitizzazione degli argomenti quando vengono richiamati i file batch, in particolare con estensione “bat“ e “cmd“ su Windows utilizzando istanze della classe “Command”. Per cui, un utente malintenzionato, in grado di controllare gli argomenti passati al processo generato, potrebbe eseguire comandi shell arbitrari bypassando l'escape. La gravità di questa vulnerabilità è critica per coloro che richiamano file batch su Windows con argomenti non attendibili. Rust comunica che nessun'altra piattaforma o utilizzo è interessato.

Nella documentazione uffiale di Rust, viene detto che nelle API “Command::arg“ e “Command::args“ gli argomenti vengono passati al processo generato "as-is", indipendentemente dal contenuto degli argomenti, e non saranno valutati da una shell. Ciò significa che dovrebbe essere sicuro passare input non attendibili come argomento. Su Windows, l'implementazione di ciò è più complessa rispetto ad altre piattaforme, poiché l'API di Windows fornisce solo una singola stringa contenente tutti gli argomenti del processo generato e spetta al processo generato dividerli.

Tuttavia, è stato segnalato che la logica di escape non era sufficientemente accurata ed era possibile passare argomenti dannosi che avrebbero comportato un'esecuzione arbitraria della shell. A causa della complessità di “cmd.exe“, non è stata identificata una soluzione che permettesse di eseguire correttamente l’escape degli argomenti in tutti i casi. Per mantenere le garanzie delle API, Rust ha migliorato la robustezza del codice di escape e modificato l'API “Command“ in modo che restituisca un errore [“InvalidInput“] quando non è possibile eseguire l'escape in modo sicuro di un argomento. Tale errore verrà emesso al momento dello spawn del processo. La correzione è inclusa in Rust 1.77.2. Inoltre, la nuova logica di escape per i file batch presenta un errore conservativo e potrebbe rifiutare argomenti validi. Coloro che implementano da soli l'escape o gestiscono solo input attendibili su Windows possono anche utilizzare il metodo “CommandExt::raw_arg“ per bypassare la logica di escape della libreria standard.

Inoltre, è stato reso noto un POC di tale vulnerabilità, il che aumenta la probabilità di exploit in the wild da parte dei Threat Actors. 

Rust ha risolto la vulnerabilità che affligge le diverse versioni del software con la release 1.77.2 rilasciata.

Tutte le versioni di Rust precedenti alla 1.77.2 su Windows sono interessate, se il codice o una delle dipendenze esegue file batch con argomenti non attendibili.

A questo proposito Yoroi suggerisce di tenere alto il monitoraggio e di eseguire le linee guida emanate e successivamente il patching alle versioni suggerite dal vendor.     

Yoroi consiglia infine di mantenere alto il livello di consapevolezza degli utenti, avvisandoli periodicamente delle minacce in corso e di utilizzare un team di esperti per salvaguardare la sicurezza del perimetro “cyber”. Per avere un indice di minaccia in tempo reale si consiglia di visitare il seguente link: Yoroi cyber security Index     

Riferimenti Esterni   

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram