CVE-2025-8088 è una vulnerabilità di tipo "path traversal" in WinRAR che interessa le versioni precedenti alla 7.13. Lo sfruttamento di questa vulnerabilità consente a un archivio appositamente modificato di aggirare la convalida del nome file e del percorso durante l'estrazione dell'archivio e di scrivere contenuti controllati dall'autore dell'attacco in posizioni specifiche su un volume NTFS. In determinate condizioni, questa capacità di scrittura può essere sfruttata per l'esecuzione di codice da remoto.
I borsisti del programma OPSWAT Fellowship hanno condotto un'analisi tecnica della vulnerabilità CVE-2025-8088. I risultati di questa analisi dei meccanismi di RAR5 e NTFS (ADS) tracciano il flusso di lavoro di estrazione e il percorso di gestione degli ADS che portano a operazioni di scrittura non sicure, e riassumono le linee guida pratiche di mitigazione e correzione destinate ai professionisti della sicurezza informatica e alle organizzazioni.

Introduzione a CVE-2025-8088
WinRAR è uno dei programmi di archiviazione più utilizzati su Windows. Supporta la conservazione e il ripristino dei metadati specifici del file system NTFS, come gli ADS (Alternate Data Streams). La vulnerabilità CVE-2025-8088 è presente nella logica di gestione degli ADS di alcune versioni di WinRAR. Nelle versioni vulnerabili, un archivio dannoso può alterare l'identificatore dello stream utilizzato durante l'estrazione; a causa di una normalizzazione e una convalida inadeguate dei percorsi nel flusso di lavoro di creazione degli ADS, ciò consente l'eseguire un attacco di tipo "directory traversal".
La vulnerabilità CVE-2025-8088 è classificata come un problema di grave entità, con un punteggio base CVSS v4.0 pari a 8,4 (Alto), che riflette il potenziale impatto misurabile sulla sicurezza qualora un utente estraesse un archivio appositamente modificato utilizzando una versione vulnerabile di WinRAR.

Contesto tecnico
Flussi di dati alternativi NTFS
NTFS (New Technology File System) è il file system predefinito delle versioni moderne di Windows. Rispetto ai file system basati su FAT, NTFS supporta funzionalità avanzate quali gli ACL (elenchi di controllo degli accessi), la crittografia EFS, la compressione, i collegamenti fisici, i punti di rianalisi (giunzioni e collegamenti simbolici) e gli ADS.
ADS è una funzionalità del file system NTFS che consente a un singolo file o directory di contenere più flussi di dati indipendenti. Il contenuto principale, visibile all'utente, è memorizzato nel flusso predefinito senza nome, comunemente indicato come ::$DATA, mentre è possibile accedere a flussi aggiuntivi con nome utilizzando la sintassi:
nomefile.ext:nomeflusso
Questi flussi denominati non sono normalmente visibili nelle visualizzazioni standard di Esplora risorse, ma sono pienamente supportati dal filesystem e possono essere elencati utilizzando gli strumenti compatibili. Ad esempio,il comando `dir/R` consente di visualizzare i flussi alternativi.
WinRAR supporta l'estrazione di voci di archivio che includono la sintassi ADS. Quando tali voci sono presenti in un archivio, durante l'estrazione WinRAR scrive il contenuto corrispondente nel flusso alternativo del file di destinazione.

Comprendere la struttura dei file RAR5
Gli archivi RAR5 sono memorizzati come una sequenza di blocchi. Ogni blocco inizia con un'intestazione che definisce il tipo di blocco e le informazioni relative alle dimensioni. Può includere, facoltativamente, un'area aggiuntiva dedicata ai metadati e un'area dati costituita dai byte del payload, come ad esempio il contenuto compresso.
Blocco = Intestazione + (area aggiuntiva facoltativa) + (area dati facoltativa)
RAR5 utilizza diversi tipi di blocchi. I tipi di blocchi rilevanti nel CVE sono:
- Intestazione del file (tipo 2): descrive una voce del file nell'archivio (nome/percorso, attributi, timestamp, parametri di compressione) ed è seguita dai dati del contenuto del file
- Intestazione di servizio (tipo 3): intestazioni supplementari facoltative che contengono metadati aggiuntivi associati all'archivio o a una voce specifica del file, come ad esempio ADS
Nel file system NTFS, gli ADS sono rappresentati da un'intestazione di servizio (tipo 3), denominata STM. L'area dati dell'intestazione di servizio contiene i byte del flusso ADS relativi alla voce del file di base.
In parole povere:

Analisi tecnica (CVE-2025-8088)
Flusso di lavoro per l'estrazione di file RAR5
WinRAR elabora gli archivi RAR5 come una sequenza di blocchi. Durante l'estrazione, esegue un'iterazione su questi blocchi, analizza l'intestazione di ciascun blocco e ne verifica l'integrità utilizzando il CRC32 incorporato prima di proseguire. Una volta elaborata una voce di file, WinRAR decomprime e scrive il contenuto del file di base sul disco, quindi determina se sia necessario applicare ulteriori metadati relativi al file system NTFS tramite i record di servizio associati. Quando è presente un record ADS (Alternate Data Stream), come una voce di servizio STM, WinRAR entra nel percorso di gestione ADS, combina il percorso del file di base con il nome dello stream per formare la destinazione ADS e crea lo stream.

Nel caso CVE-2025-8088, la causa principale è che la creazione di flussi ADS richiama API di Windows API () utilizzando un percorso derivato dai metadati controllati dall'archivio, rendendo la costruzione e la convalida del percorso ADS insufficienti a impedire l'accesso trasversale.
Identificazione del percorso del codice ADS (“STM”)
I nostri ricercatori laureati hanno eseguito una serie di analisi statiche e dinamiche in un ambiente di laboratorio controllato utilizzando WinRAR 7.12. Hanno individuato la logica relativa all'ADS cercando il marcatore di servizio "STM" nel file binario e hanno poi verificato il percorso del codice relativo all'estrazione durante l'esecuzione.

Impostando un punto di interruzione sul riferimento "STM" rilevato durante l'estrazione di un archivio contenente dati ADS, il punto di interruzione è stato sistematicamente raggiunto, confermando che questo percorso di esecuzione viene attivato durante il normale flusso di lavoro di estrazione.

Una volta raggiunto il punto di interruzione, è stato utilizzato lo stack di chiamate del debugger per ricostruire la sequenza di funzioni invocate dopo l'azione "Estrai" nell'interfaccia utente di WinRAR, stabilendo un chiaro punto di riferimento per l'elaborazione a cascata dei blocchi e il percorso di esecuzione dell'ADS.

Analisi dell'intestazione e verifica CRC32
WinRAR elabora ogni blocco RAR5 leggendo l'intestazione del blocco, verificando i campi di integrità e inoltrando il blocco a un gestore specifico per quel tipo di blocco. Il punto di ingresso dell'elaborazione del blocco e la logica di analisi dell'intestazione associata sono illustrati nelle figure da 6 a 10, dove WinRAR imposta il puntatore del file sull'offset del blocco corrente, legge i byte iniziali dell'intestazione, che includono il tipo e la dimensione dell'intestazione, e ne verifica l'integrità utilizzando il CRC32 prima di proseguire.
Una volta completata con successo la convalida, analizza ulteriori campi dell'intestazione, quali flag, dimensione decompressa, metodo di compressione e checksum facoltativi. Successivamente, elabora il corpo del blocco.



Durante il reverse engineering, è stato osservato che la routine CRC32 si comportava in modo coerente con un'implementazione standard del CRC32 in stile zlib. In pratica, questo controllo CRC32 funge da filtro di integrità. Se i campi dell'intestazione vengono modificati, il CRC32 incorporato deve essere aggiornato per garantire che WinRAR accetti l'intestazione e continui l'elaborazione.

Dopo aver verificato l'intestazione CRC32, il parser procede all'estrazione delle restanti informazioni dell'intestazione, quali la dimensione decompressa, il metodo di compressione e altri attributi.

Una volta completate l'analisi e la convalida dell'intestazione, WinRAR elabora il corpo del blocco in base al tipo di intestazione analizzata e ai flag.

Nel CVE-2025-8088, la verifica dell'integrità dell'intestazione viene eseguita prima che WinRAR inoltri la richiesta al gestore del blocco di servizio che elabora i record ADS.
Creazione di annunci tramite il blocco di servizi (“STM”)
Il percorso di elaborazione ADS viene attivato quando WinRAR rileva un blocco di servizio. I blocchi di servizio utilizzano il valore di tipo blocco 3. Quando viene rilevato un blocco di servizio, WinRAR lo inoltra a un gestore di intestazioni di servizio.

All'interno del gestore del servizio, WinRAR verifica il nome del servizio. Se il nome del servizio corrisponde a "STM", il record viene considerato come un payload ADS e l'implementazione passa a una routine di creazione ADS.

WinRAR recupera quindi il nome dello stream dal record di servizio e lo combina con il percorso di base del file per costruire il percorso ADS finale. Nelle versioni precedenti alla 7.13, l'analisi mostra che il nome dello stream non viene sottoposto a un'adeguata sanificazione, consentendo a sequenze di attraversamento di influenzare la risoluzione del percorso di destinazione risultante.


Dopo aver creato la destinazione, WinRAR genera il flusso tramite una routine di supporto che richiama API CreateFileW di Windows, quindi scrive i byte ADS utilizzando WriteFile. Se il percorso risolto si trova al di fuori della directory di estrazione selezionata dall'utente, WinRAR creerà il flusso/file di destinazione e lo riempirà con contenuti controllati dall'autore dell'attacco.




In sintesi, il flusso di lavoro di estrazione ADS presenta due vulnerabilità rilevanti dal punto di vista della sicurezza. In primo luogo, il nome del flusso ADS non viene sottoposto a un'adeguata sanificazione, consentendo a sequenze di attraversamento di influenzare il percorso di destinazione risultante. In secondo luogo, WinRAR crea il flusso ADS richiamando la funzione CreateFileW() con un percorso derivato dai metadati controllati dall'archivio.
Insieme, queste condizioni consentono a un archivio appositamente creato di reindirizzare la destinazione di CreateFileW() al di fuori della directory di estrazione prevista e di scrivere contenuti controllati dall'autore dell'attacco in una posizione da lui influenzata. Se la destinazione è una directory rilevante ai fini della persistenza (ad esempio, la cartella "Avvio" dell'utente), questa operazione di scrittura può consentire l'esecuzione di codice successivo al prossimo accesso o riavvio, a seconda del tipo di payload e della configurazione del sistema.
Scenario di attacco
La vulnerabilità CVE-2025-8088 è effettivamente sfruttabile in scenari in cui un aggressore induce un utente a decomprimere un archivio RAR appositamente modificato utilizzando una versione vulnerabile di WinRAR. Un tipico vettore di attacco è l'ingegneria sociale, come il phishing, che induce la vittima a fidarsi di un archivio dannoso e ad avviare la decompressione su un sistema critico.
L'archivio incorpora un record di servizio ADS ("STM"). Il nome del flusso è strutturato in modo da introdurre una semantica di percorso. Durante l'estrazione su NTFS, WinRAR elabora il record ADS e ricava il percorso del flusso di destinazione dai metadati controllati dall'archivio. Poiché la definizione di questo percorso ADS non è sufficientemente vincolata, la destinazione risultante può trovarsi al di fuori della directory di estrazione selezionata dall'utente, comprese posizioni critiche come la cartella di avvio dell'utente.

Prova di fattibilità
Per dimostrare la vulnerabilità CVE-2025-8088, i nostri ricercatori laureati hanno preparato un file di archivio RAR appositamente creato contenente un record di servizio ADS (“STM”) con campi controllati dall’autore dell’attacco. Questo archivio è strutturato con un nome di flusso ADS che include sequenze di traversal. Questa struttura influenza la posizione di destinazione finale durante la gestione dell'ADS, compreso il percorso passato a CreateFileW() quando viene creato lo stream. Per garantire che WinRAR accetti i metadati modificati e raggiunga il percorso di elaborazione ADS, i valori CRC32 dell'intestazione pertinenti vengono ricalcolati in modo che l'archivio superi la convalida dell'integrità dell'intestazione.

Quando una versione vulnerabile di WinRAR entra nella routine di elaborazione ADS durante l'estrazione dell'archivio manipolato, scrive il contenuto controllato dall'autore dell'attacco nella destinazione preselezionata anziché nella directory di estrazione scelta dall'utente. Dopo l'estrazione, l'esecuzione del payload dipende dal suo formato e dalle modalità di esecuzione della destinazione preselezionata. Ad esempio, si tratta di posizioni in cui il contenuto potrebbe essere eseguito al successivo accesso o riavvio del sistema.

Bonifica
Il rischio associato alla vulnerabilità CVE-2025-8088 può essere mitigato aggiornando WinRAR a una versione corretta (7.13 o successive) su tutti gli endpoint gestiti. Qualora non fosse possibile effettuare un aggiornamento tempestivo, è necessario prendere in considerazione misure di controllo compensative, quali:
- Limitare o disattivare la conservazione degli ADS negli strumenti di archiviazione quando non è necessaria
- Limitare l'estrazione di archivi non attendibili ad ambienti isolati
- Applicare il principio del privilegio minimo (evitare di eseguire strumenti di estrazione con privilegi elevati)
- Monitoraggio delle directory critiche, come quelle di avvio, per individuare eventuali operazioni di scrittura impreviste originate dai flussi di lavoro di estrazione degli archivi
Per vulnerability detection tempestivamente vulnerability detection intervenire rapidamente, MetaDefender supporta le operazioni di correzione urgenti individuando i dispositivi su cui sono in esecuzione versioni vulnerabili di WinRAR ed evidenziando gli aggiornamenti necessari. Le sue solide funzionalità di gestione delle vulnerabilità e delle patch, che supportano oltre 1100 applicazioni, identificano in modo proattivo gli endpoint su cui sono in esecuzione sistemi operativi e applicazioni di terze parti non aggiornati o privi di patch, fornendo le correzioni consigliate.
Vulnerability Management consente agli amministratori di individuare rapidamente le esposizioni, stabilire le priorità degli interventi correttivi e promuovere l'aggiornamento a una versione corretta, riducendo il rischio di attacchi basati sulla scrittura di file in archivi, come CVE-2025-8088, e minacce simili a livello di endpoint.

