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) est le système de fichiers par défaut des versions récentes de Windows. Par rapport aux systèmes de fichiers basés sur FAT, NTFS prend en charge des fonctionnalités avancées telles que les listes de contrôle d'accès (ACL), le chiffrement EFS, la compression, les liens physiques, les points de réanalyse (jonctions et liens symboliques) et les ADS.
ADS est une fonctionnalité NTFS qui permet à un fichier ou à un répertoire unique de contenir plusieurs flux de données indépendants. Le contenu principal, visible par l'utilisateur, est stocké dans le flux par défaut sans nom, généralement représenté par ::$DATA, tandis que les flux supplémentaires nommés sont accessibles à l'aide de la syntaxe suivante :
nom_fichier.ext:nom_flux
Ces flux nommés ne sont généralement pas visibles dans les vues standard de l'Explorateur Windows, mais ils sont entièrement pris en charge par le système de fichiers et peuvent être répertoriés à l'aide d'outils compatibles. Par exemple, la commande`dir/R` permet d'afficher les flux alternatifs.
WinRAR prend en charge l'extraction des entrées d'archives qui utilisent la syntaxe ADS. Lorsque de telles entrées sont présentes dans une archive, WinRAR écrit le contenu correspondant dans le flux alternatif du fichier de destination lors de l'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 traite les archives RAR5 comme une séquence de blocs. Lors de l'extraction, il parcourt ces blocs, analyse l'en-tête de chaque bloc et vérifie l'intégrité de l'en-tête à l'aide du CRC32 intégré avant de poursuivre. Une fois qu'une entrée de fichier a été traitée, WinRAR décompresse et écrit le contenu du fichier de base sur le disque, puis détermine si des métadonnées NTFS supplémentaires doivent être appliquées via les enregistrements de service associés. Lorsqu'un enregistrement ADS (Alternate Data Stream) est présent, tel qu'une entrée de service STM, WinRAR passe par le chemin de gestion ADS, combine le chemin du fichier de base avec le nom du flux pour former la cible ADS, puis crée le flux.

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
Pour illustrer la vulnérabilité CVE-2025-8088, nos boursiers de troisième cycle ont préparé un fichier d'archive RAR spécialement conçu, contenant un enregistrement de service ADS (« STM ») dont certains champs sont contrôlés par l'attaquant. Cette archive est structurée avec un nom de flux ADS qui inclut des séquences de traversée. Cette structure influence l'emplacement cible final lors du traitement ADS, y compris le chemin transmis à CreateFileW() lors de la création du flux. Pour s'assurer que WinRAR accepte les métadonnées modifiées et accède au chemin de traitement ADS, les valeurs CRC32 de l'en-tête concernées sont recalculées afin que l'archive passe la validation d'intégrité de l'en-tête.

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.

