550 字
3 分鐘
CVE-2025-8088 WinRAR Path Traversal
2025-10-19

漏洞成因#

WinRAR 7.12(含)以前版本存在Path Traversal漏洞 此漏洞是WinRAR在解析ADS時會把..\\解析為路徑,導致其可以在指定路徑解壓檔案

ADS是什麼#

ADS 是 NTFS 檔案系統的一個特性,允許單個檔案包含多個「資料流」。每個檔案至少有一個主資料流,但可以附加多個替代資料流。filename:streamname

可以用 dir /r來查看,通常是用來儲存檔案摘要資訊 image

主要成因#

在rar的ads的檔名中包含..\\,解壓縮的時候會將其解析為相對路徑,藉此可以把檔案放在非預期的路徑,像是\Start Menu\Programs\Startup,以此方式來植入後門

一般來說檔名是不能包含.\等字元的,但這邊利用的是先綁定正常的檔名的資料流,接著直接修改rar內的bytes,把這些正常的檔名改成具有..\\的相對路徑,這樣當解壓縮時,就會讀取到這些路徑,並在指定的位置植入檔案

要注意rar為了檢查內容是被更動過,會使用CRC驗證,因此修改檔名時也要重新計算CRC並更新

漏洞復現#

WinRAR版本:x64_7.11

這邊直接採用別人寫好的腳本來產生惡意RAR 其生成過程如下:

1. 生成多個txt檔,並用在其ads(XXX.txt:XXXXX...)寫入腳本內容
2. 把這些txt檔壓縮成一個rar
3. 修改rar的內容,把原本的路徑改成"..\\..\\.....\\Startup\\payload.bat"
4. 計算新的CRC並更新,這樣就完成惡意rar了

生成惡意RAR exploit.rar image

解壓後發現Startup多出了一個payload.bat image

開機時就會自動執行腳本內容 image

這個腳本我使用時會報錯,推測是placeholder太長的緣故,改成150即可

image

解壓時會出現一堆路徑錯誤是因為使用相對路徑,不確定目前這個壓縮檔所在位置的深度,所以需要不斷拼接..\\來嘗試

漏洞防範#

  1. 更新WinRAR到7.13之後
  2. 不解壓來路不明的壓縮檔,並檢查Startup目錄
  3. 改用好用的7zip

Reference#

https://github.com/pentestfunctions/CVE-2025-8088-Multi-Document

CVE-2025-8088 WinRAR Path Traversal
https://fuwari.vercel.app/posts/cve-2025-8088/
作者
hsu_K
發佈於
2025-10-19
許可協議
CC BY-NC-SA 4.0