PyInstaller工具漏洞預(yù)警,可致攻擊者執(zhí)行任意 Python 代碼
漏洞概況
PyInstaller項目近日發(fā)布補丁,修復(fù)了一個影響6.0.0之前版本打包應(yīng)用程序的本地權(quán)限提升漏洞(CVE-2025-59042,CVSS評分7.0)。該漏洞可能導(dǎo)致攻擊者在PyInstaller凍結(jié)應(yīng)用的引導(dǎo)過程中執(zhí)行任意代碼。

技術(shù)原理
PyInstaller通過打包解釋器和依賴項將Python應(yīng)用程序轉(zhuǎn)換為獨立可執(zhí)行文件。安全公告指出:"由于PyInstaller凍結(jié)應(yīng)用在引導(dǎo)過程中會將特殊條目附加到sys.path,且引導(dǎo)腳本在sys.path仍包含該條目時嘗試加載用于字節(jié)碼解密的可選模塊,導(dǎo)致使用PyInstaller 6.0.0之前版本構(gòu)建的應(yīng)用可能被低權(quán)限攻擊者誘騙執(zhí)行任意Python代碼。"
該漏洞的成因在于:當(dāng)滿足特定條件時,引導(dǎo)腳本可能錯誤導(dǎo)入攻擊者放置的惡意模塊。具體攻擊方式需要攻擊者能夠在可執(zhí)行文件旁創(chuàng)建精心構(gòu)造的目錄或zip壓縮包,這些文件需模仿PyInstaller引導(dǎo)加載器用于傳輸PYZ存檔位置的格式。
攻擊條件
成功利用該漏洞需要同時滿足以下五個前提條件:
- 使用PyInstaller 6.0.0之前版本構(gòu)建的應(yīng)用程序(影響onedir和onefile兩種模式)
 - 未啟用可選的字節(jié)碼加密功能
 - 攻擊者能在可執(zhí)行文件所在目錄創(chuàng)建文件/目錄
 - 文件系統(tǒng)允許在文件/目錄名中使用"?"字符(非Windows系統(tǒng))
 - 攻擊者能夠確定嵌入式PYZ存檔的偏移量
 
修復(fù)方案
PyInstaller團隊分兩個階段解決了該問題:
- 6.0.0版本:移除對字節(jié)碼加密的支持,由于引導(dǎo)腳本不再嘗試加載字節(jié)碼解密模塊,從根本上消除了該攻擊向量
 - 6.10.0版本:通過消除使用sys.path傳輸PYZ存檔位置的做法,進一步強化了引導(dǎo)過程
 
臨時緩解措施
對于無法立即升級的環(huán)境,建議采取以下防護措施:
- 對包含特權(quán)可執(zhí)行文件(如setuid二進制文件)的目錄設(shè)置嚴格的權(quán)限控制
 - 確保攻擊者無法在敏感可執(zhí)行文件旁創(chuàng)建任意文件
 















 
 
 















 
 
 
 