Archive Extraction Path Traversal ("Zip-Slip" / WinRAR CVE-2025-8088)

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Overview

De nombreux formats d'archive (ZIP, RAR, TAR, 7-ZIP, etc.) permettent à chaque entrée de porter son propre chemin interne. Lorsqu'un utilitaire d'extraction respecte aveuglément ce chemin, un nom de fichier conçu contenant .. ou un chemin absolu (par exemple C:\Windows\System32\) sera écrit en dehors du répertoire choisi par l'utilisateur. Cette classe de vulnérabilité est largement connue sous le nom de Zip-Slip ou extraction de chemin d'archive.

Les conséquences vont de l'écrasement de fichiers arbitraires à l'atteinte directe de l'exécution de code à distance (RCE) en déposant un payload dans un emplacement auto-exécutable tel que le dossier Démarrage de Windows.

Root Cause

  1. L'attaquant crĂ©e une archive oĂč un ou plusieurs en-tĂȘtes de fichiers contiennent :
  • SĂ©quences de traversĂ©e relatives (..\..\..\Users\\victim\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\payload.exe)
  • Chemins absolus (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\payload.exe)
  1. La victime extrait l'archive avec un outil vulnérable qui fait confiance au chemin intégré au lieu de le nettoyer ou de forcer l'extraction sous le répertoire choisi.
  2. Le fichier est écrit dans l'emplacement contrÎlé par l'attaquant et exécuté/chargé la prochaine fois que le systÚme ou l'utilisateur déclenche ce chemin.

Real-World Example – WinRAR ≀ 7.12 (CVE-2025-8088)

WinRAR pour Windows (y compris le CLI rar / unrar, la DLL et la source portable) n'a pas réussi à valider les noms de fichiers lors de l'extraction. Une archive RAR malveillante contenant une entrée telle que :

text
..\..\..\Users\victim\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.exe

se retrouverait en dehors du répertoire de sortie sélectionné et à l'intérieur du dossier Startup de l'utilisateur. AprÚs la connexion, Windows exécute automatiquement tout ce qui s'y trouve, offrant un RCE persistant.

Création d'une archive PoC (Linux/Mac)

bash
# Requires rar >= 6.x
mkdir -p "evil/../../../Users/Public/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup"
cp payload.exe "evil/../../../Users/Public/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/"
rar a -ep evil.rar evil/*

Options utilisées :

  • -ep – stocker les chemins de fichiers exactement comme donnĂ©s (ne pas Ă©laguer le ./ initial).

Livrer evil.rar à la victime et lui demander de l'extraire avec une version vulnérable de WinRAR.

Exploitation observée dans la nature

ESET a signalé des campagnes de spear-phishing RomCom (Storm-0978/UNC2596) qui ont joint des archives RAR abusant de CVE-2025-8088 pour déployer des portes dérobées personnalisées et faciliter des opérations de ransomware.

Conseils de détection

  • Inspection statique – Lister les entrĂ©es d'archive et signaler tout nom contenant ../, ..\\, chemins absolus (C:) ou encodages UTF-8/UTF-16 non canoniques.
  • Extraction en bac Ă  sable – DĂ©compresser dans un rĂ©pertoire jetable en utilisant un extracteur sĂ»r (par exemple, patool de Python, 7-Zip ≄ derniĂšre version, bsdtar) et vĂ©rifier que les chemins rĂ©sultants restent Ă  l'intĂ©rieur du rĂ©pertoire.
  • Surveillance des points de terminaison – Alerter sur les nouveaux exĂ©cutables Ă©crits dans les emplacements Startup/Run peu aprĂšs qu'une archive soit ouverte par WinRAR/7-Zip/etc.

Atténuation et durcissement

  1. Mettre Ă  jour l'extracteur – WinRAR 7.13 implĂ©mente une bonne sanitation des chemins. Les utilisateurs doivent le tĂ©lĂ©charger manuellement car WinRAR n'a pas de mĂ©canisme de mise Ă  jour automatique.
  2. Extraire des archives avec l'option “Ignorer les chemins” (WinRAR : Extraire → "Ne pas extraire les chemins") lorsque cela est possible.
  3. Ouvrir des archives non fiables dans un bac Ă  sable ou une VM.
  4. Mettre en Ɠuvre une liste blanche d'applications et restreindre l'accĂšs en Ă©criture des utilisateurs aux rĂ©pertoires d'auto-exĂ©cution.

Cas supplémentaires affectés / historiques

  • 2018 – Avis Zip-Slip massif par Snyk affectant de nombreuses bibliothĂšques Java/Go/JS.
  • 2023 – 7-Zip CVE-2023-4011 traversĂ©e similaire lors de la fusion -ao.
  • Toute logique d'extraction personnalisĂ©e qui ne parvient pas Ă  appeler PathCanonicalize / realpath avant l'Ă©criture.

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks