I ricercatori della società Edera hanno individuato un bug critico in Ruest, in particolare nell'analisi dei confini dei file, battezzato TARmageddon e identificato come CVE-2025-62518, presente nella libreria async-tar di Rust. La vulnerabilità non si limita però a questa singola libreria, ma si estende a numerose sue derivazioni, inclusa la popolarissima tokio-tar che da sola conta oltre 5 milioni di download sul repository crates.io.
Robert Beggs, responsabile della società canadese di risposta agli incidenti DigitalDefence, spiega che i file TAR vengono utilizzati nei sistemi Unix e Linux per raggruppare più directory e file in un unico archivio che mantiene l'intera struttura delle directory e i metadati delle informazioni originali. Questi archivi trovano largo impiego nei backup e nella distribuzione del codice sorgente dei software, rendendo la vulnerabilità particolarmente pervasiva nell'ecosistema dello sviluppo.
Il difetto tecnico consiste in una desincronizzazione che permette a un attaccante di "contrabbandare" voci aggiuntive all'interno delle estrazioni di archivi TAR. Il problema emerge quando si elaborano file TAR annidati che presentano uno specifico disallineamento tra le intestazioni PAX estese e quelle ustar. La falla deriva da una logica inconsistente del parser nel determinare i confini dei dati dei file.
Secondo il rapporto di Edera, nel peggiore degli scenari questa vulnerabilità raggiunge una gravità di 8.1 su 10 e può condurre all'esecuzione di codice remoto attraverso attacchi di sovrascrittura dei file, come la sostituzione di file di configurazione o il dirottamento dei backend di compilazione. Tra gli altri possibili impatti figura anche la diffusione dell'infezione attraverso le applicazioni, configurando di fatto un attacco alla supply chain software.
I progetti maggiori colpiti includono uv (il gestore di pacchetti Python di Astral), testcontainers e wasmCloud. "A causa della natura diffusa di tokio-tar nelle sue varie forme, non è possibile quantificare davvero in anticipo il raggio d'azione di questo bug nell'ecosistema", avvertono i ricercatori. La prima azione raccomandata consiste nel correggere tutte le derivazioni attive, considerando l'impatto su progetti importanti e ampiamente utilizzati.
La situazione peggiora ulteriormente per il fatto che tokio-tar, nonostante gli alti numeri di download, rimane senza correzione probabilmente perché non è più attivamente mantenuto. Edera suggerisce agli sviluppatori che dipendono da questa libreria di considerare la migrazione verso una derivazione attivamente mantenuta come astral-tokio-tar versione 0.5.6 o successive, che sono state corrette.
Beggs delinea scenari d'attacco preoccupanti: "Nel caso peggiore, permetterebbe a un attaccante di eseguire codice arbitrario su un sistema host e intraprendere azioni malevole, come sovrascrivere file critici, script di compilazione, o ottenere accesso non autorizzato al filesystem". Lo sfruttamento potrebbe anche risultare nella compromissione di qualsiasi sistema che estrae file dal TAR maligno.
Tra gli scenari di infezione prospettati da Edera figura un attacco ai gestori di pacchetti Python che utilizzano tokio-tar. Un attaccante potrebbe caricare un pacchetto dannoso sul repository open source PyPI, da cui gli sviluppatori scaricano utilità. Il contenitore TAR esterno conterrebbe un file legittimo, ma il TAR interno nascosto includerebbe uno malevolo che dirotta il backend di compilazione, compromettendo l'ambiente di test e inquinando la catena di fornitura software.
Un altro scenario riguarda sistemi con fasi separate di "scansione e approvazione". Uno scanner di sicurezza analizza il TAR esterno pulito e approva il suo limitato set di file, ma il processo di estrazione con la libreria vulnerabile introduce file aggiuntivi non approvati e non scansionati dal TAR interno, risultando in un bypass dei controlli di sicurezza.
Per quanto riguarda le contromisure, Beggs raccomanda ai responsabili della sicurezza informatica di verificare il codice per identificare le dipendenze da derivazioni di tokio-tar e assicurarsi che siano corrette, di rivedere l'utilizzo dei file TAR negli ambienti di integrazione continua e nei container, di isolare gli archivi durante l'elaborazione evitando di estrarre file TAR da fonti non attendibili, e di continuare a monitorare possibili exploit o ulteriori vulnerabilità associate alla libreria.
Il bug è stato scoperto a luglio e comunicato quello stesso mese ai manutentori di tutte le librerie, alla Rust Foundation e a un certo numero di progetti. Si è convenuto di non divulgare i dettagli fino a questa settimana. Poiché la derivazione più popolare appare non più attivamente mantenuta, Edera ha coordinato una divulgazione decentralizzata attraverso il complesso sistema delle derivazioni.
I ricercatori di Edera sottolineano che "la scoperta di TARmageddon è un importante promemoria che Rust non è una soluzione miracolosa". Sebbene gli sviluppatori Rust sostengano che il linguaggio permetta la creazione di applicazioni sicure dal punto di vista della memoria, questa inconsistenza di parsing è fondamentalmente un difetto logico. Gli sviluppatori devono rimanere vigili contro tutte le classi di vulnerabilità, indipendentemente dal linguaggio utilizzato. Il rapporto costituisce anche un monito sui rischi di affidarsi a librerie open source non mantenute nel codice.
Beggs avverte che, sebbene non siano ancora noti exploit di questa vulnerabilità, la situazione può cambiare rapidamente. "È una vulnerabilità di gravità elevata, 8.1 su una scala da 1 a 10, quindi probabilmente attirerà l'attenzione degli attaccanti". La vulnerabilità è particolarmente seria perché le librerie TAR vulnerabili sono spesso presenti come parte di applicazioni non attivamente mantenute e potrebbero essere trascurate durante le operazioni di correzione o mitigazione del problema.