Vulnerabilità nel gestore di pacchetti Cargo utilizzato per i progetti Rust

Nel gestore pacchetti Cargo, utilizzato per gestire pacchetti e costruire progetti in linguaggio Rust, sono state individuate due vulnerabilità che possono essere sfruttate durante il download di pacchetti appositamente progettati da repository di terze parti (si precisa che gli utenti del repository ufficiale crates.io non sono interessati dal problema). La prima vulnerabilità (CVE-2022-36113) consente di sovrascrivere i primi due byte di qualsiasi file purché le autorizzazioni attuali lo consentano. La seconda vulnerabilità (CVE-2022-36114) può essere utilizzata per esaurire lo spazio su disco.

Le vulnerabilità verranno corrette nel rilascio di Rust 1.64, previsto per il 22 settembre. Alle vulnerabilità viene assegnato un basso livello di gravità, poiché danni simili possono essere causati quando si utilizzano pacchetti non verificati da repository di terze parti utilizzando la capacità standard di avviare gestori personalizzati da script di assembly o macro procedurali forniti nel pacchetto. Allo stesso tempo, i problemi sopra menzionati differiscono in quanto vengono sfruttati nella fase di apertura del pacchetto dopo il download (senza assemblaggio).

In particolare, dopo aver scaricato un pacchetto, cargo ne scompatta il contenuto nella directory ~/.cargo e memorizza un segno di avvenuta spacchettamento nel file .cargo-ok. L'essenza della prima vulnerabilità è che il creatore del pacchetto può inserire al suo interno un collegamento simbolico con il nome .cargo-ok, che porterà a scrivere il testo "ok" sul file a cui punta il collegamento.

La seconda vulnerabilità è causata dalla mancanza di un limite alla dimensione dei dati estratti dall'archivio, che può essere utilizzato per creare “zip bomb” (l'archivio può contenere dati che consentono di raggiungere il massimo rapporto di compressione per il formato zip - circa 28 milioni di volte, in questo caso ad esempio un file zip da 10 MB appositamente preparato comporterà la decompressione di circa 281 TB di dati).

Fonte: opennet.ru

Aggiungi un commento