TARmageddon: vulnerabilità critica nella libreria tokio-tar espone a RCE remota

di Redazione
0 commenti

TARmageddon è una vulnerabilità grave di desincronizzazione identificata nella libreria tokio-tar, ampiamente utilizzata nell’ecosistema Rust per la gestione asincrona di archivi TAR. Catalogata come CVE-2025-62518, la falla consente ad attaccanti remoti di eseguire codice arbitrario (RCE) sfruttando un mismatch tra gli header PAX e ustar, che induce il parser a interpretare in modo errato i dati interni. Questo errore logico permette l’iniezione di archivi TAR nidificati e la sovrascrittura di file arbitrari, con impatti potenzialmente devastanti su sistemi di build, ambienti di test containerizzati e supply chain software.

Descrizione della vulnerabilità TARmageddon

image 670
TARmageddon: vulnerabilità critica nella libreria tokio-tar espone a RCE remota 8

La vulnerabilità risiede in un difetto di parsing che si verifica quando un file TAR specifica una dimensione incoerente tra l’header esteso PAX e l’header ustar. Se il campo “size” in PAX dichiara un valore X e quello ustar è impostato a zero, il parser di tokio-tar procede erroneamente basandosi sull’header ustar, saltando parte dei dati effettivi. I bytes residui vengono così interpretati come nuove voci legittime dell’archivio, consentendo la creazione di file non previsti o la manipolazione di percorsi al di fuori della directory di estrazione. Gli aggressori possono quindi sovrascrivere file di sistema o configurazioni, bypassare controlli di sicurezza e iniettare codice eseguibile.

image 671
TARmageddon: vulnerabilità critica nella libreria tokio-tar espone a RCE remota 9

La falla è stata confermata da un proof-of-concept in grado di generare un archivio malevolo che, durante l’estrazione, esegue comandi remoti senza autenticazione. L’impatto si estende a fork come astral-tokio-tar e krata-tokio-tar, oltre a progetti downstream come uv (package manager Python) e testcontainers, dove l’exploit può alterare immagini container o configurazioni di backend. La desincronizzazione logica non compromette la sicurezza della memoria – garantita dal linguaggio Rust – ma dimostra come errori di logica possano aprire varchi anche in contesti memory-safe.

Scoperta e timeline della vulnerabilità

La vulnerabilità è stata scoperta il 21 agosto 2025 durante un audit su repository correlati al fork krata-tokio-tar. I ricercatori hanno confermato la falla con un reproduction minimo e hanno notificato i maintainer lo stesso giorno, avviando una procedura di disclosure coordinata con Rust Foundation e progetti downstream. Il 22 agosto sono state rilasciate le prime patch da parte del team astral-tokio-tar, seguite dal riconoscimento ufficiale di async-tar il 2 settembre. Un embargo di 60 giorni è stato imposto per consentire la correzione coordinata, culminando nella pubblicazione del GHSA e del CVE il 21 ottobre 2025. Durante l’embargo, i maintainer hanno implementato controlli di coerenza tra header PAX e ustar, assicurando la validazione rigorosa delle dimensioni dichiarate e introducendo boundary check per prevenire interpretazioni multiple dello stream. Progetti abbandonati come tokio-tar originale, privo di file SECURITY.md, hanno invece richiesto attività di social engineering per contattare i maintainer. La community Rust ha raccomandato la migrazione verso fork attivi, consolidando gli sforzi su astral-tokio-tar e archiviando krata-tokio-tar per ridurre la frammentazione.

Sistemi e progetti affetti

TARmageddon impatta tutte le versioni vulnerabili di tokio-tar e dei suoi fork asincroni. La libreria, nonostante sia considerata abandonware, registra oltre cinque milioni di download su crates.io, rendendo la falla estremamente diffusa.
Tra i progetti affetti figurano:

  • uv, package manager per ambienti Python, esposto a hijacking dei backend PyPI tramite pacchetti TAR manipolati.
  • testcontainers, che può subire infezioni nei layer container durante la generazione di immagini.
  • wasmCloud, binstalk-downloader e liboxen, notificati per esposizioni indirette.
  • Async-tar, coinvolto inizialmente ma già patchato.
    In ambienti cloud e CI/CD, la vulnerabilità può essere sfruttata per avvelenare build system e compromettere pipeline automatizzate, mentre nei contesti DevOps consente persistenza del malware tramite file alterati o script post-estrazione.

Dettagli di sfruttamento e impatti

L’exploit di TARmageddon si basa sulla creazione di archivi malevoli che includono file con header PAX alterati. L’attacco sfrutta la confusione logica per far riconoscere segmenti di dati binari come nuovi header validi, estraendo contenuti inattesi e smuggling TAR nidificati.
Gli impatti osservati comprendono:

  • Esecuzione remota di codice (RCE) su host che estraggono archivi TAR non verificati.
  • Hijacking di backend Python, con iniezione di configurazioni malevole.
  • Avvelenamento di container image nei sistemi di test automatizzati.
  • Bypass di scanner di sicurezza e SBOM, che non rilevano i file “fantasma” generati durante l’estrazione.
    L’exploit richiede solo che la vittima elabori un archivio TAR proveniente da una fonte non attendibile, senza bisogno di interazione aggiuntiva. In scenari cloud, l’attacco può compromettere build pipeline e propagarsi lungo la catena di fornitura software.

Raccomandazioni e mitigazioni

Le principali mitigazioni includono:

  • Aggiornamento immediato a versioni patchate dei fork astral-tokio-tar e async-tar.
  • Migrazione dai progetti abbandonati, come tokio-tar originale, verso alternative mantenute.
  • Verifica della consistenza tra header PAX e ustar prima dell’estrazione.
  • Confronto dei file estratti con manifesti attesi per individuare contenuti anomali.
  • Isolamento delle operazioni TAR in sandbox o ambienti containerizzati, limitando i permessi di scrittura.
  • Evita di estrarre archivi TAR provenienti da fonti non fidate e integra controlli post-estrazione automatizzati.
    Progetti come binstalk e liboxen hanno già avviato la rimozione della dipendenza da tokio-tar, mentre la Rust Foundation ha raccomandato audit periodici delle librerie open source e l’adozione di parsing sincrono con tar crate, meno esposto a problemi asincroni di flusso.

TARmageddon mette in luce come anche un linguaggio memory-safe come Rust non sia immune da vulnerabilità logiche che derivano da incoerenze di protocollo. La falla sottolinea l’importanza di manutenzione attiva, audit di dipendenze e coordinamento tra maintainer in un ecosistema open source sempre più complesso e interdipendente. La risposta rapida della community e la pubblicazione tempestiva delle patch confermano tuttavia la resilienza dell’ecosistema Rust, che ha saputo mitigare in tempi record un rischio di portata globale per la supply chain software.