
CVE-2023-38831 è una vulnerabilità zero-day di WinRAR che consente agli aggressori di mascherare file dannosi negli archivi, ingannando gli utenti facendogli eseguire contenuti nocivi.
CVE-2023-38831 è una vulnerabilità zero-day che interessa tutte le versioni di WinRAR precedenti alla 6.23.
Il problema risiede nell'elaborazione del formato ZIP, che potrebbe consentire agli aggressori di utilizzare archivi compromessi per distribuire malware. I malintenzionati possono camuffare file dannosi all'interno di archivi ZIP dando loro nomi simili a quelli legittimi, ingannando gli utenti inducendoli a eseguire contenuti pericolosi mentre credono di aprire un file sicuro. Questa falla è stata attivamente sfruttata dall'aprile 2023, colpendo in particolare il settore finanziario, ponendo rischi significativi per gli utenti che aprono file compressi non fidati. L'aggiornamento a WinRAR 6.23 o successivo mitiga questa vulnerabilità migliorando la sanificazione dei nomi dei file durante l'estrazione.
Nell'esempio seguente, ho scaricato tutti i file forniti in un'unica cartella, eseguito lo script tramite CMD, specificato i nomi dei file appropriati (incluso l'exploit), e infine aggiunto alcuni file casuali all'archivio .rar per renderlo più autentico e nascondere meglio il nuovo exploit .txt. Quando l'utente fa clic sul presunto file ".txt", verrà eseguito il file .cmd nascosto situato nella stessa cartella con un nome corrispondente:
https://github.com/user-attachments/assets/91eed756-bb38-42dd-a127-cabaccb4c386
Utilizzando questa idea, possiamo tentare di camuffare il file nel modo più efficace possibile e far apparire l'exploit urgente o importante per l'utente. Nell'esempio seguente, ho aggiunto diversi file casuali per far sembrare l'archivio .rar più legittimo. Ho usato un semplice file .txt come esca e lo ho chiamato "ISTRUZIONI - Apri prima dell'estrazione" per attirare l'utente a cliccarlo:

Utilizzando lo script Python fornito, puoi creare il tuo file RAR che useremo per vedere la logica alla base di questo exploit.
Passo 1 - Scarica i file exploit.py e DoS.cmd.
Passo 2 - Mettili tutti in una cartella e scegli un file esca casuale; per questo POC userò un semplice file .jpg.
Passo 3 - Esegui lo script e inserisci i nomi richiesti.
Lo script funziona nel modo seguente:
Recupera i nomi e le estensioni dei file forniti.
Crea una cartella temporanea con lo script posizionato all'interno di una sottocartella e il file esca al di fuori di essa — entrambi denominati in modo simile, con il nome della cartella a cui viene aggiunta "X" e il nome del file esca a cui viene aggiunta "Y":

Quindi crea un file ZIP dalla cartella temporanea, lo apre in modalità binaria e modifica i caratteri "X" e "Y", sostituendoli con spazi per far sembrare che siano lo stesso file.
Scrive i dati modificati in un file .rar.

Utilizzando un programma come ProcessMonitor, possiamo vedere i passaggi esatti che WinRAR esegue quando apre il file:

Il problema deriva dall'ambiguità causata da un archivio contenente due file con nomi quasi identici: "image.jpg " (esca) e
"image.jpg .cmd" (script dannoso). Lo spazio extra crea un nome base simile, il che confonde il modo in cui sia WinRAR che Windows risolvono i percorsi dei file. Quando si fa clic su "image.jpg ", WinRAR legge e crea tutti i file correlati nella cartella temporanea a causa dei loro nomi base simili:

Per risolvere l'ambiguità, WinRAR esegue una ricerca con caratteri jolly (QueryDirectory) per image.jpg .*, con l'obiettivo di individuare un tipo di file eseguibile assicurandosi che non siano presenti altri file correlati. WinRAR (e Windows) darà sempre la priorità ai tipi di file eseguibili (ad esempio .cmd, .exe, .bat) quando risolve percorsi ambigui. Di conseguenza, ha eseguito "image.jpg .cmd" utilizzando cmd.exe (Create Process), consentendo l'esecuzione dello script dannoso invece di aprire il file esca nel visualizzatore di immagini predefinito.
WinRAR ha risolto questo problema nella versione 6.23 e si consiglia vivamente agli utenti di aggiornare all'ultima versione.
https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=232