
CVE-2023-38831 est une vulnérabilité Zero-day de WinRAR qui permet aux attaquants de déguiser des fichiers malveillants dans des archives, trompant les utilisateurs pour qu'ils exécutent un contenu nuisible.
CVE-2023-38831 est une vulnérabilité zero-day affectant toutes les versions de WinRAR antérieures à 6.23.
Le problème réside dans le traitement du format ZIP, ce qui pourrait permettre aux attaquants d'utiliser des archives compromises pour distribuer des logiciels malveillants. Les acteurs malveillants peuvent dissimuler des fichiers malveillants dans des archives ZIP en leur donnant des noms similaires à ceux de fichiers légitimes, trompant ainsi les utilisateurs en leur faisant exécuter du contenu dangereux alors qu'ils croient ouvrir un fichier sûr. Cette faille a été activement exploitée depuis avril 2023, ciblant particulièrement les secteurs financiers, posant des risques importants pour les utilisateurs qui ouvrent des fichiers compressés non fiables. La mise à jour vers WinRAR 6.23 ou une version ultérieure corrige cette vulnérabilité en améliorant l'assainissement des noms de fichiers lors de l'extraction.
Dans l'exemple suivant, j'ai téléchargé tous les fichiers fournis dans un seul dossier, exécuté le script via CMD, spécifié les noms de fichiers appropriés (y compris l'exploit), et enfin ajouté quelques fichiers aléatoires à l'archive .rar pour la rendre plus authentique et mieux dissimuler le nouvel exploit .txt. Lorsque l'utilisateur clique sur le fichier supposé ".txt", il exécutera le fichier .cmd caché situé dans le même dossier avec un nom correspondant :
https://github.com/user-attachments/assets/91eed756-bb38-42dd-a127-cabaccb4c386
En utilisant cette idée, nous pouvons tenter de déguiser le fichier aussi efficacement que possible et faire en sorte que l'exploit paraisse urgent ou important pour l'utilisateur. Dans l'exemple suivant, j'ai ajouté plusieurs fichiers aléatoires pour rendre l'archive .rar plus légitime. J'ai utilisé un fichier .txt basique comme leurre et je l'ai nommé "INSTRUCTIONS - Open Before Extraction" pour inciter l'utilisateur à cliquer dessus :

En utilisant le script Python fourni, vous pouvez créer votre propre fichier RAR que nous utiliserons pour comprendre la logique derrière cet exploit.
Étape 1 - Téléchargez les fichiers exploit.py et DoS.cmd.
Étape 2 - Placez-les tous dans un dossier et choisissez un fichier leurre aléatoire ; pour les besoins de cette POC, j'utiliserai un simple fichier .jpg.
Étape 3 - Exécutez le script et saisissez les noms requis.
Le script fonctionne de la manière suivante :
Récupère les noms et extensions de fichiers fournis.
Crée un dossier temporaire avec le script placé dans un sous-dossier et le fichier leurre à l'extérieur — tous deux nommés de manière similaire, le nom du dossier étant suffixé par "X" et le nom du fichier leurre par "Y" :

Il crée ensuite un fichier ZIP à partir du dossier temporaire, l'ouvre en mode binaire et modifie les caractères "X" et "Y", en les remplaçant par des espaces pour faire apparaître les deux entrées comme s'il s'agissait du même fichier.
Écrit les données modifiées dans un fichier .rar.

En utilisant un programme comme ProcessMonitor, nous pouvons observer les étapes exactes que WinRAR suit lors de l'exécution du fichier :

Le problème vient de l'ambiguïté causée par une archive contenant deux fichiers aux noms presque identiques : "image.jpg " (leurre) et
"image.jpg .cmd" (script malveillant). L'espace supplémentaire crée un nom de base similaire, ce qui perturbe la résolution des chemins de fichiers par WinRAR et Windows. Lorsque l'utilisateur clique sur "image.jpg ", WinRAR lit et crée tous les fichiers associés dans le dossier temporaire en raison de leurs noms de base similaires :

Pour résoudre l'ambiguïté, WinRAR effectue une recherche avec caractère générique (QueryDirectory) pour image.jpg .*, visant à localiser un type de fichier exécutable tout en s'assurant qu'aucun autre fichier associé n'est présent. WinRAR (et Windows) donnera toujours la priorité aux types de fichiers exécutables (par exemple, .cmd, .exe, .bat) lors de la résolution de chemins ambigus. Par conséquent, il a exécuté "image.jpg .cmd" via cmd.exe (Create Process), permettant au script malveillant de s'exécuter au lieu d'ouvrir le fichier leurre dans le visualiseur d'images par défaut.
WinRAR a résolu ce problème dans la version 6.23, et il est fortement recommandé aux utilisateurs de mettre à jour vers la version la plus récente.
https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=232