趨勢科技ZDI查獲輝達函式庫資安漏洞 Python pickle模組再成隱憂

記者孫敬/編譯

輝達(NVIDIA)的Merlin Transformers4Rec函式庫近日被揭露存在一個高風險漏洞(CVE-2025-23298),該漏洞允許未經授權的攻擊者透過一個不安全的模型檢查點(Checkpoint)載入器,取得遠端程式碼執行(RCE)的最高權限。

延伸閱讀:瀏覽器擴充功能成資安破口?駭客如何靜悄悄植入惡意程式

NVIDIA logo 20250926
輝達函式庫漏洞已經修補完成。(圖/輝達)

PyTorch的載入機制成資安破口

資安公司趨勢科技旗下的Zero Day Initiative(ZDI)指出,這個漏洞的根源在於Merlin函式庫中的load_model_trainer_states_from_checkpoint函數。這個函數在載入模型時,使用了PyTorch的torch.load(),但卻沒有設定任何安全參數。

PyTorch的torch.load()底層是依賴Python的pickle模組,而pickle的設計允許其載入任意的Python物件,只要攻擊者在序列化檔案中動手腳,就能控制反序列化(deserialization)的整個過程。

同時,攻擊者只需在惡意的檢查點檔案中定義一個客製化的__reduce__方法,就能在模型載入時執行任意的系統指令,例如呼叫os.system()來從遠端伺服器下載並執行惡意腳本。

廣泛的攻擊面與慘重後果

這個漏洞的攻擊面相當廣泛,因為在AI社群中,研究人員與開發者經常透過公共程式碼庫(如GitHub)或雲端儲存空間,分享預先訓練好的模型檢查點。一旦攻擊者將惡意模型植入這些公開平台,任何下載並載入該模型的用戶都可能成為受害者。

更令人擔憂的是,許多企業的機器學習流程(ML pipelines)在執行時通常都擁有較高的權限。這意味著,一旦攻擊成功,駭客不僅能掌控模型主機,更有可能將權限提升至最高級別(Root privileges),進而控制整個伺服器或企業內部網路。

輝達的修補方案與開發者自保之道

輝達已經透過PR #802修復了這個問題,他們用一個客製化的load()函數取代了原始的pickle呼叫,這個新函數會嚴格限定只允許已批准的類別進行反序列化。

為了防範類似的資安漏洞,資安人員也給出了幾項重要的建議:

  • 永遠不要信任外部資料:開發者絕對不應對來自不可信來源的資料使用pickle。
  • 使用更安全的替代格式:Safetensors或ONNX等格式是更安全的模型儲存方式,應優先考慮。
  • 強化組織內部資安:企業應對模型檔案進行加密簽章,將反序列化過程放入沙盒(sandbox)中執行,並定期對機器學習流程進行資安審核。

資料來源:Cyber Security News

Loading

在 Google News 上追蹤我們

發佈留言

Back to top button