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) is the default filesystem for modern versions of Windows. Compared to FAT-based filesystems, NTFS supports advanced capabilities including ACLs (access control lists), EFS encryption, compression, hard links, reparse points (junctions and symlinks), and ADS.
ADS is an NTFS feature that allows a single file or directory to contain multiple independent streams of data. The primary, user-visible content is stored in the unnamed default stream, commonly represented as ::$DATA, while additional named streams can be accessed using the syntax:
nomefile.ext:nomeflusso
These named streams are not normally visible in standard Windows Explorer views, but they are fully supported by the filesystem and can be enumerated using supported tooling. For instance, dir /R can display alternate streams.
WinRAR supports extracting archive entries that include ADS syntax. When such entries exist within an archive, WinRAR writes the corresponding content into the target file’s alternate stream during extraction.

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 processes RAR5 archives as a sequence of blocks. During extraction, it iterates over these blocks, parses each block header, and validates header integrity using the embedded CRC32 before continuing. After a file entry is processed, WinRAR decompresses and writes the base file content to the disk, then determines whether additional NTFS-related metadata must be applied via associated service records. When an ADS (Alternate Data Stream) record is present, such as an STM service entry, WinRAR enters the ADS-handling path, combines the base file path with the stream name to form the ADS target, and creates the 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à
To demonstrate CVE-2025-8088, our graduate fellows prepared a crafted RAR archive file containing an ADS (“STM”) service record with attacker-controlled fields. This archive is structured with an ADS stream name that includes traversal sequences. This structure influences the final target location during ADS handling, including the path passed to CreateFileW() when the stream is created. To ensure that WinRAR accepts the modified metadata and reaches the ADS-processing path, the relevant header CRC32 values are recomputed so the archive passes header integrity validation.

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.

