La vulnérabilité CVE-2025-8088 est une faille de type « traversée de chemin » dans WinRAR qui affecte les versions antérieures à la version 7.13. L'exploitation de cette vulnérabilité permet à une archive spécialement conçue de contourner la validation des noms de fichiers et des chemins d'accès lors de l'extraction de l'archive, et d'entraîner l'écriture de contenu contrôlé par l'attaquant à des emplacements spécifiques sur un volume NTFS. Dans certaines conditions, cette capacité d'écriture peut être exploitée pour permettre l'exécution de code à distance.
Les boursiers du programme de bourses OPSWAT ont mené une analyse technique de la vulnérabilité CVE-2025-8088. Les conclusions de cette analyse des mécanismes RAR5 et NTFS (ADS) retracent le processus d'extraction et le chemin de traitement des ADS qui conduisent à des écritures non sécurisées, et résument des recommandations pratiques en matière d'atténuation et de correction à l'intention des professionnels de la cybersécurité et des organisations.

Présentation de la vulnérabilité CVE-2025-8088
WinRAR est l'un des utilitaires d'archivage les plus utilisés sous Windows. Il prend en charge la conservation et la restauration des métadonnées spécifiques au système de fichiers NTFS, telles que les flux de données alternatifs (ADS). La vulnérabilité CVE-2025-8088 affecte la logique de gestion des ADS de certaines versions de WinRAR. Dans les versions vulnérables, une archive malveillante peut altérer l'identifiant de flux utilisé lors de l'extraction ; or, en raison d'une normalisation et d'une validation insuffisantes des chemins d'accès dans le processus de création des ADS, cela permet un traversement de répertoires.
La vulnérabilité CVE-2025-8088 est classée comme un problème de gravité élevée, avec un score de base CVSS v4.0 de 8,4 (Élevé), ce qui reflète le risque d'impact mesurable sur la sécurité si un utilisateur extrait une archive spécialement conçue à l'aide d'une version vulnérable de WinRAR.

Contexte technique
Flux de données alternatifs 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:
nom_fichier.ext:nom_flux
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.

Comprendre la structure des fichiers RAR5
Les archives RAR5 sont stockées sous la forme d'une séquence de blocs. Chaque bloc commence par un en-tête qui définit le type du bloc et sa taille. Il peut éventuellement comporter une zone de métadonnées supplémentaire et une zone de données constituée d'octets de charge utile, tels que du contenu compressé.
Bloc = En-tête + (zone supplémentaire facultative) + (zone de données facultative)
Le format RAR5 utilise plusieurs types de blocs. Les types de blocs concernés dans le CVE sont les suivants :
- En-tête de fichier (type 2) : décrit une entrée de fichier dans l'archive (nom/chemin d'accès, attributs, horodatages, paramètres de compression) et est suivi des données utiles du fichier
- En-tête de service (type 3) : en-têtes supplémentaires facultatifs qui contiennent des métadonnées supplémentaires associées à l'archive ou à une entrée de fichier spécifique, telles que les ADS
Dans le système de fichiers NTFS, les ADS sont représentées par un en-tête de service (type 3), appelé STM. La zone de données de cet en-tête contient les octets du flux ADS correspondant à l'entrée du fichier de base.
En résumé :

Analyse technique (CVE-2025-8088)
Processus d'extraction 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.

Dans la vulnérabilité CVE-2025-8088, la cause première réside dans le fait que la création d'un flux ADS fait appel à la fonction API Windows en utilisant un chemin dérivé de métadonnées gérées par l'archive, ce qui rend la construction et la validation du chemin ADS insuffisantes pour empêcher le traversal.
Identification du chemin de code ADS (« STM »)
Nos boursiers diplômés ont réalisé une analyse combinant des tests statiques et dynamiques dans un environnement de laboratoire contrôlé à l'aide de WinRAR 7.12. Ils ont identifié la logique liée à l'ADS en recherchant le marqueur de service « STM » dans le fichier binaire, puis ont confirmé le chemin d'exécution du code côté extraction lors de l'exécution.

En plaçant un point d'arrêt sur la référence « STM » rencontrée lors de l'extraction d'une archive contenant des données ADS, le point d'arrêt a été systématiquement atteint, ce qui a permis de confirmer que ce chemin d'exécution est bien appelé au cours du processus d'extraction normal.

Une fois le point d'arrêt atteint, la pile d'appels du débogueur a été utilisée pour reconstituer la séquence des fonctions appelées après l'action « Extraire » dans l'interface utilisateur de WinRAR, ce qui a permis d'établir un repère clair pour le traitement en bloc en aval et le chemin d'exécution de l'ADS.

Analyse des en-têtes et validation CRC32
WinRAR traite chaque bloc RAR5 en lisant l'en-tête du bloc, en validant les champs d'intégrité et en le transmettant à un gestionnaire spécifique au type de bloc. Le point d'entrée du traitement des blocs et la logique d'analyse de l'en-tête associée sont illustrés aux figures 6 à 10, où WinRAR positionne le pointeur de fichier sur l'offset du bloc actuel, lit les premiers octets de l'en-tête (qui comprennent le type et la taille de l'en-tête) et valide l'intégrité de l'en-tête à l'aide du CRC32 avant de poursuivre.
Une fois la validation réussie, il analyse les champs d'en-tête supplémentaires, tels que les indicateurs, la taille décompressée, la méthode de compression et les sommes de contrôle facultatives. Il traite ensuite le corps du bloc.



Au cours de l'ingénierie inverse, il a été constaté que la routine CRC32 se comportait de manière conforme à une implémentation CRC32 standard de type zlib. Concrètement, ce contrôle CRC32 fait office de barrière d'intégrité. Si les champs d'en-tête sont modifiés, le CRC32 intégré doit être mis à jour pour garantir que WinRAR accepte l'en-tête et poursuive le traitement.

Après avoir validé l'en-tête CRC32, l'analyseur poursuit en extrayant les autres informations de l'en-tête, telles que la taille décompressée, la méthode de compression et d'autres attributs.

Une fois l'analyse et la validation de l'en-tête terminées, WinRAR traite le corps du bloc en fonction du type d'en-tête analysé et des indicateurs.

Dans la vulnérabilité CVE-2025-8088, la validation de l'intégrité de l'en-tête est effectuée avant que WinRAR ne transmette les données au gestionnaire de blocs de service chargé de traiter les enregistrements ADS.
Création d'ADS via le bloc de service (« STM »)
Le chemin de traitement ADS est activé lorsque WinRAR rencontre un bloc de service. Les blocs de service utilisent la valeur de type de bloc 3. Lorsqu'un bloc de service est détecté, WinRAR le transmet à un gestionnaire d'en-tête de service.

Au sein du gestionnaire de service, WinRAR vérifie le nom du service. Lorsque le nom du service correspond à « STM », l'enregistrement est traité comme une charge utile ADS, et l'implémentation passe à une routine de création ADS.

WinRAR récupère ensuite le nom du flux à partir de l'enregistrement de service et le combine avec le chemin d'accès de base du fichier pour construire la cible ADS finale. Dans les versions antérieures à la version 7.13, l'analyse montre que le nom du flux n'est pas suffisamment nettoyé, ce qui permet à des séquences de traversée d'influencer la résolution du chemin d'accès cible obtenu.


Une fois la cible créée, WinRAR génère le flux via une routine d'assistance qui appelle API CreateFileW de Windows, puis écrit les octets ADS à l'aide de WriteFile. Si le chemin d'accès obtenu se trouve en dehors du répertoire d'extraction sélectionné par l'utilisateur, WinRAR créera le flux ou le fichier de destination et le remplira avec du contenu contrôlé par l'attaquant.




En résumé, le processus d'extraction des ADS présente deux failles de sécurité. Premièrement, le nom du flux ADS n'est pas suffisamment nettoyé, ce qui permet à des séquences de traversée d'influencer le chemin d'accès cible obtenu. Deuxièmement, WinRAR crée le flux ADS en appelant la fonction CreateFileW() avec un chemin d'accès dérivé des métadonnées gérées par l'archive.
Conjuguées, ces conditions permettent à une archive spécialement conçue de rediriger la cible de la fonction CreateFileW() hors du répertoire d'extraction prévu et d'écrire du contenu contrôlé par l'attaquant dans un emplacement sous son emprise. Si la destination est un répertoire pertinent pour la persistance (par exemple, le dossier « Démarrage » de l'utilisateur), cette opération d'écriture peut permettre l'exécution de code ultérieur lors de la prochaine connexion ou du prochain redémarrage, en fonction du type de charge utile et de la configuration du système.
Scénario d'attaque
La vulnérabilité CVE-2025-8088 peut être exploitée dans la pratique lorsque, par exemple, un attaquant incite un utilisateur à extraire une archive RAR spécialement conçue à l'aide d'une version vulnérable de WinRAR. Un vecteur d'attaque courant est l'ingénierie sociale, comme le phishing, qui amène la victime à faire confiance à une archive malveillante et à lancer son extraction sur un système critique.
L'archive intègre un enregistrement de service ADS (« STM »). Le nom de son flux est conçu pour intégrer une sémantique de parcours. Lors de l'extraction sur NTFS, WinRAR traite l'enregistrement ADS et déduit le chemin d'accès du flux de destination à partir des métadonnées gérées par l'archive. Comme cette construction du chemin ADS n'est pas suffisamment contrainte, la cible déterminée peut se trouver en dehors du répertoire d'extraction sélectionné par l'utilisateur, y compris dans des emplacements critiques tels que le dossier de démarrage de l'utilisateur.

Validation de principe
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.

Lorsqu'une version vulnérable de WinRAR entre dans la routine de traitement ADS lors de l'extraction de l'archive piégée, elle écrit le contenu contrôlé par le pirate dans la destination présélectionnée plutôt que dans le répertoire d'extraction choisi par l'utilisateur. Une fois l'extraction terminée, l'exécution de la charge utile dépend de son format et des règles d'exécution de la destination présélectionnée. Par exemple, il peut s'agir d'emplacements susceptibles d'exécuter le contenu lors de la prochaine connexion ou du prochain redémarrage.

Remédiation
Le risque lié à la vulnérabilité CVE-2025-8088 peut être atténué en mettant à jour WinRAR vers une version corrigée (7.13 ou ultérieure) sur tous les terminaux gérés. Si une mise à jour rapide n'est pas possible, il convient d'envisager des mesures de compensation, telles que :
- Limiter ou désactiver la conservation des ADS dans les outils d'archivage lorsque cela n'est pas nécessaire
- Limiter l'extraction des archives non fiables à des environnements isolés
- Appliquer le principe du privilège minimal (éviter d'exécuter les outils d'extraction avec des privilèges élevés)
- Surveiller les répertoires critiques, tels que les emplacements de démarrage, afin de détecter toute écriture inattendue provenant de processus d'extraction d'archives
Pour vulnerability detection précoce vulnerability detection une correction rapide, MetaDefender facilite les opérations de correction urgentes en identifiant les appareils exécutant des versions vulnérables de WinRAR et en mettant en évidence les mises à jour nécessaires. Ses fonctionnalités robustes de gestion des vulnérabilités et des correctifs, qui prennent en charge plus de 1 100 applications, identifient de manière proactive les terminaux exécutant des systèmes d'exploitation ou des applications tierces non corrigés ou obsolètes, et proposent les correctifs recommandés.
Vulnerability Management permet aux administrateurs de détecter rapidement les failles, de hiérarchiser les mesures correctives et de faciliter la mise à niveau vers une version corrigée, réduisant ainsi le risque d'attaques par écriture de fichiers via des archives, telles que CVE-2025-8088, et de menaces similaires visant les terminaux.

