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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Огляд

Багато форматів архівів (ZIP, RAR, TAR, 7-ZIP тощо) дозволяють кожному запису мати свій внутрішній шлях. Коли утиліта для розпакування сліпо поважає цей шлях, створене ім'я файлу, що містить .. або абсолютний шлях (наприклад, C:\Windows\System32\), буде записано поза вибраною користувачем директорією. Цей клас вразливостей широко відомий як Zip-Slip або перехід по шляху розпакування архіву.

Наслідки варіюються від перезапису довільних файлів до безпосереднього досягнення віддаленого виконання коду (RCE) шляхом розміщення корисного навантаження в автоматично запускаємому місці, такому як папка Startup Windows.

Корінна причина

  1. Зловмисник створює архів, в якому один або кілька заголовків файлів містять:
  • Відносні послідовності переходу (..\..\..\Users\\victim\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\payload.exe)
  • Абсолютні шляхи (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\payload.exe)
  1. Жертва розпаковує архів за допомогою вразливого інструменту, який довіряє вбудованому шляху замість його очищення або примусового розпакування під вибраною директорією.
  2. Файл записується в місце, контрольоване зловмисником, і виконується/завантажується наступного разу, коли система або користувач активує цей шлях.

Приклад з реального життя – WinRAR ≤ 7.12 (CVE-2025-8088)

WinRAR для Windows (включаючи rar / unrar CLI, DLL та портативне джерело) не зміг перевірити імена файлів під час розпакування. Зловмисний архів RAR, що містить запис, такий як:

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

виявиться поза вибраною вихідною директорією і всередині Startup папки користувача. Після входу в систему Windows автоматично виконує все, що там присутнє, забезпечуючи постійний RCE.

Створення 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 used:

  • -ep – зберігати шляхи до файлів точно так, як вказано (не виключати ведучий ./).

Доставте evil.rar жертві та накажіть їй витягти його за допомогою вразливої версії WinRAR.

Спостережуване використання в дії

ESET повідомила про кампанії таргетованої фішингової атаки RomCom (Storm-0978/UNC2596), які прикріплювали RAR-архіви, що використовують CVE-2025-8088 для розгортання кастомізованих бекдорів та сприяння операціям з програмами-вимагачами.

Поради щодо виявлення

  • Статична перевірка – Перерахуйте записи архіву та позначте будь-які імена, що містять ../, ..\\, абсолютні шляхи (C:) або неканонічні кодування UTF-8/UTF-16.
  • Витяг у пісочниці – Розпакуйте в одноразовий каталог, використовуючи безпечний екстрактор (наприклад, Python’s patool, 7-Zip ≥ остання версія, bsdtar) та перевірте, щоб результуючі шляхи залишалися в межах каталогу.
  • Моніторинг кінцевих точок – Сповіщайте про нові виконувані файли, записані в Startup/Run місця незабаром після відкриття архіву за допомогою WinRAR/7-Zip тощо.

Пом'якшення та зміцнення

  1. Оновіть екстрактор – WinRAR 7.13 реалізує належну санітизацію шляхів. Користувачі повинні завантажити його вручну, оскільки WinRAR не має механізму автоматичного оновлення.
  2. Витягуйте архіви з опцією “Ігнорувати шляхи” (WinRAR: Витягти → "Не витягувати шляхи") коли це можливо.
  3. Відкривайте ненадійні архіви всередині пісочниці або ВМ.
  4. Реалізуйте білу списку додатків та обмежте доступ користувачів до каталогів автозапуску.

Додаткові постраждалі / історичні випадки

  • 2018 – Масове Zip-Slip попередження від Snyk, що вплинуло на багато бібліотек Java/Go/JS.
  • 2023 – 7-Zip CVE-2023-4011 подібне обходження під час злиття -ao.
  • Будь-яка кастомна логіка витягання, яка не викликає PathCanonicalize / realpath перед записом.

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks