
JFrog資安研究團隊揭露,開源模型檢測工具PickleScan在舊版實作中存在3項CVSS分數皆為9.3的零時差漏洞,編號分別為CVE-2025-10155、CVE-2025-10156與CVE-2025-10157,攻擊者可藉此迴避掃描結果,讓惡意PyTorch模型在被載入時執行任意程式碼,造成供應鏈攻擊風險。
PickleScan是檢查Python pickle序列化檔是否進行可疑匯入或函式呼叫的開源資安工具,目前已被HuggingFace等AI模型平臺用於掃描上架的PyTorch模型,因此其安全性與正確性影響整個開源模型生態。
PyTorch在儲存模型時大量依賴Python的pickle序列化格式,pickle的設計目標是還原任意Python物件,也因此允許在反序列化過程中執行任意程式碼,當載入未經信任的模型檔案,惡意程式將有機會竊取機敏資料或安裝後門,這一點早已被官方文件與社群研究反覆示警。
本次揭露的3個漏洞,分別出現在檔案類型判斷、ZIP壓縮檔處理與危險模組判斷邏輯。CVE-2025-10155允許攻擊者只靠變更副檔名,如將惡意pickle檔改名為.pt或.bin,就讓PickleScan採用錯誤處理流程而未深入解析內容,但PyTorch在載入時仍會依檔案實際格式成功還原並執行惡意程式碼。
CVE-2025-10156則與ZIP壓縮檔中的CRC欄位有關,研究人員證實,只要刻意寫入錯誤的CRC數值,就可能讓PickleScan在展開模型封裝檔時發生例外,導致整體掃描失敗,而PyTorch在預設編譯設定下會略過CRC檢查,因此仍可從同一個封裝檔載入並執行模型內的惡意pickle。
第三個漏洞CVE-2025-10157則是濫用工具內建的危險模組黑名單,只比對完整模組名稱的特性,攻擊者藉由改用這些模組的子類別或內部子模組,例如透過asyncio家族中的內部類別觸發系統指令執行,使PickleScan只將其標記為可疑,未被歸類為真正危險,實際上仍可達成任意程式碼執行。
這3個零時差漏洞已在與作者負責任通報協調後,由PickleScan維護者於2025年9月釋出的0.0.31版中完成修補。研究人員強調,組織不應將PickleScan視為唯一防線,而應以多層防禦思維設計機器學習流程,包括優先採用Safetensors等不允許任意程式碼執行的較安全模型格式,在沙箱或隔離環境中載入外部模型,並將掃描失敗視為高風險訊號,發生錯誤時直接阻斷該模型在組織內的散布。
熱門新聞
2025-12-12
2025-12-15
2025-12-12
2025-12-12
2025-12-15
2025-12-12