研究摘要

  • 研究報告基於 Sonatype 發現的四個 PickleScan 漏洞,這些漏洞可能被利用來繞過惡意軟件掃描,影響使用開放源始碼 AI 的開發者。
  • 所有漏洞已在 PickleScan 0.0.23 版本修復,建議用戶更新至最新版本。
  • 研究建議採取最佳實踐 (Best Practices) ,如避免從不可信來源反序列化 pickle 檔案,並考慮使用更安全的序列化格式。
AI 安全危機:PickleScan 漏洞如何威脅開放源始碼模型 | 資訊安全新聞

背景

Python 的 pickle 模組用於物件序列化,但反序列化時可能執行任意程式碼,存在安全風險。PickleScan 是一款用於掃描 Python pickle 檔案的工具,特別適用於 AI/ML 模型序列化。

發現的漏洞

Sonatype 發現了四個漏洞,詳見下表:

CVE ID 描述
CVE-2025-1716 允許繞過靜態分析工具執行任意程式碼
CVE-2025-1889 因依賴檔案副檔名而未能檢測隱藏檔案
CVE-2025-1944 易受 ZIP 檔名篡改攻擊,名稱與中心目錄不一致
CVE-2025-1945 當 ZIP 檔案旗標位元 (Flag bit) 被修改時,未能檢測惡意 pickle 檔案

這些漏洞可能被威脅行為者 (Threat actor) 利用,特別是在使用 PyTorch 或 Hugging Face 等平台的開發者中。

影響與建議

這些漏洞可能導致惡意程式碼未被檢測,特別是下載開放源始碼 AI 模型時的風險。建議更新至 PickleScan 0.0.23,並遵循最佳實踐,如驗證檔案來源、使用沙箱環境等。此外,作者將在 RSA Conference 上討論這些問題,時間為 4 月 30 日上午 8:30。

報告詳述


本文基於 Sonatype 發表的文章“Bypassing picklescan: Sonatype discovers four vulnerabilities” 進行分析後的報告。報告詳細探討了 PickleScan 的四個漏洞、其安全影響以及相應的緩解措施。以下是全面的分析,旨在為開發者和安全專業人員提供深入見解。

引言

Python 的 pickle 模組是一種用於序列化和反序列化 Python 物件的工具,廣泛用於資料存儲和傳輸。然而,由於 pickle 檔案在反序列化時可能執行任意 Python 程式碼,這種便利性帶來了顯著的安全風險。特別是在 AI 和機器學習領域,模型經常以 pickle 檔案形式共享,增加了潛在的攻擊面。

PickleScan 是一款專為檢測 Python pickle 檔案中可疑動作或潛在惡意內容的安全掃描工具,旨在幫助開發者識別和緩解這些風險。Sonatype 的研究揭示了 PickleScan 存在四個漏洞,這些漏洞可能被利用來繞過其檢測機制,特別是在開放源始碼 AI 模型的上下文中。

方法與資料來源

本報告主要依賴 Sonatype 的部落格 (Blog) 文章,該文章詳細描述了四個漏洞的發現過程和影響。此外,通過網路搜索和網頁瀏覽工具,補充了有關 Python pickle 檔案安全性和 PickleScan 功能的背景信息。所有資料均基於 2025 年 3 月 13 日的可用信息。

漏洞詳述

Sonatype 發現的四個漏洞如下,均已由 PickleScan 0.0.23 版本修復:

漏洞 ID 描述 潛在影響
CVE-2025-1716 允許繞過靜態分析工具執行任意程式碼 攻擊者可執行惡意程式碼,繞過安全檢查
CVE-2025-1889 因依賴檔案副檔名而未能檢測隱藏檔案 隱藏的惡意 pickle 檔案可能未被檢測
CVE-2025-1944 易受 ZIP 檔名篡改攻擊,名稱與中心目錄不一致 ZIP 檔案內的惡意內容可能被忽略
CVE-2025-1945 當 ZIP 檔案旗標位元被修改時,未能檢測惡意 pickle 檔案 修改詮釋資料(Metadata)可使惡意檔案逃避檢測

這些漏洞的發現突顯了 PickleScan 在處理複雜檔案結構(如 ZIP 檔案)時的局限性,特別是當檔案詮釋資料(File Metadata)被操縱時。

安全影響分析

這些漏洞對使用 PickleScan 的開發者和組織構成重大風險,特別是在 AI/ML 領域。Pickle 檔案常見於平台如 PyTorch 和 Hugging Face,開發者可能下載並反序列化這些檔案。如果 PickleScan 未能檢測到惡意內容,攻擊者可能通過這些檔案執行任意程式碼,導致資料洩露、系統妥協或其他安全事件。

例如,CVE-2025-1716 允許攻擊者繞過靜態分析,這意味著即使檔案被掃描,惡意程式碼仍可能在反序列化時執行。類似地,CVE-2025-1944 和 CVE-2025-1945 利用 ZIP 檔案的結構漏洞,可能使惡意內容隱藏在看似安全的檔案中。

緩解措施與最佳實踐

為了減輕這些漏洞的影響,建議採取以下措施:

  1. 更新 PickleScan: 確保使用最新版本(0.0.23 或更高),以包含所有修復。
  2. 驗證檔案來源: 避免從不可信來源下載和反序列化 pickle 檔案,特別是開放源始碼 AI 模型。
  3. 使用替代序列化格式: 考慮使用更安全的序列化格式,如 JSON 或 Protocol Buffers,減少依賴 pickle 的風險。
  4. 實施附加安全措施: 使用沙箱環境或其他安全工具進行額外檢查,特別是在處理來自未知來源的檔案時。
  5. 持續監控與審計: 定期審計系統,監控任何可疑活動,並確保身份驗證和權限管理服務的安全。

此外,Sonatype 的文章提到,作者 Trevor Madge 將在 RSA Conference 上討論這些問題,時間為 4 月 30 日上午 8:30,標題為“Unpickling PyTorch: Keeping Malicious AI Out of the Enterprise”。這一會議可能提供更多見解和實用建議。

結論

Sonatype 發現的四個 PickleScan 漏洞揭示了 Python pickle 檔案安全性的複雜性,特別是在 AI/ML 領域。雖然 PickleScan 是一款有用的工具,但這些漏洞表明,單靠一個工具無法完全消除風險。開發者和組織應採取多層防禦策略,包括更新工具、驗證來源和使用替代格式,以保護其系統和資料。