資安公司 Zafran Labs 研究人員揭露,Hugging Face Diffusers 函式庫存在三項高嚴重性漏洞,統稱為 FaceHugger。攻擊者可透過精心設計的模型儲存庫,在載入時靜默執行任意程式碼,對 AI 供應鏈造成安全威脅。
上述漏洞已於 2026 年 5 月初發布的 Diffusers 0.38.0 版本中修補。
背景:Diffusers 與 trust_remote_code 機制
Diffusers 是 Hugging Face 旗下的 Python 套件,提供先進的預訓練擴散模型,可用於生成影片、圖片與音訊;2026 年 7 月下載量逾 810 萬次。Hugging Face 已成為 AI 時代的重要程式碼托管中心,其函式庫與儲存庫廣泛嵌入企業環境的生產管線、持續整合/持續部署(CI/CD)系統與容器映像中。
trust_remote_code 參數是 Diffusers 的核心資安防護機制,用於控制模型儲存庫中托管的客製化 Python 程式碼,是否可在 from_pretrained() 載入過程中執行。設定為 True 代表允許執行客製化程式碼;設定為 False 或省略則會阻擋未驗證程式碼執行。
漏洞根因:檢查與使用之間的時間差
研究員解釋,所有漏洞變體的根本原因在於:信任檢查完全位於第一階段。模型下載流程設計為兩個依序、但非原子性(non-atomic)的 HTTP 請求,trust_remote_code 安全閘門僅針對第一個請求執行。因此,只要讓載入器在閘門通過後才看到客製化程式碼,就能繞過此機制。三項漏洞均屬於檢查時間至使用時間(Time-of-Check to Time-of-Use,TOCTOU)問題。
三項漏洞細節
CVE-2026-44827(CVSS 8.8)為程式碼注入漏洞。攻擊者可透過命名為「None.py」的管線(pipeline),在傳入 trust_remote_code=False(或省略,即預設值)的情況下,透過 custom_pipeline 流程從 Hub 儲存庫載入任意程式碼。
CVE-2026-45804(CVSS 7.5)為競爭條件(race condition)漏洞。攻擊者可在 hf_hub_download 與 snapshot_download 兩次 HTTP 請求之間修改設定檔,將任意程式碼引入儲存庫並達成程式碼執行。
CVE-2026-44513(CVSS 8.8)為另一項程式碼注入漏洞,同樣允許在傳入 trust_remote_code=False(或省略)的情況下,透過 custom_pipeline 流程從 Hub 儲存庫載入任意程式碼。
防護建議
若無法立即升級,專案維護者建議採取以下緩解措施:僅以完全受信任且已稽核的來源呼叫 from_pretrained,包含 pretrained_model_name_or_path、custom_pipeline 及本地快照目錄;在讀取 pipeline.py 之前,不要將 custom_pipeline= 指向與主要 pretrained_model_name_or_path 不同的 Hub 儲存庫;在本地快照上呼叫 from_pretrained 之前,檢查快照中是否存在非預期的 .py 檔案,特別是元件子目錄(如 unet/、scheduler/ 等)及快照根目錄。
研究員指出,大家往往把從 AI 儲存庫拉下來的工件只當成是「資料」,但其實裡面的設定檔、載入器,以及客製化 pipeline 程式碼,都可能在不知不覺間變成可執行程式,把原本例行的模型載入流程,變成攻擊者的初始入侵切入點。隨著企業越來越依賴 Hugging Face 等平台,將 AI 模型儲存庫以「不受信任程式碼」的角度納入管控與檢視,已是不可忽視的資安要求。
延伸閱讀:全球最大AI模型庫Hugging Face遭自主AI代理人攻擊 內部資料與憑證外洩
本文轉載自 TheHackerNews。