資安公司 Pluto Security 揭露一波名為「Load/Mine」的惡意軟體活動:攻擊者在 Hugging Face 上架偽裝成 Qwen2 小型測試模型的儲存庫,只要開發者用 trust_remote_code=True 載入,模型權重還沒讀進來,惡意 Python 程式就已經在主機上執行,裝上挖礦程式與後門。兩波活動共 31 個惡意儲存庫,連同相關模型累計下載超過 3.2 萬次。第一波被下架後,第二波幾天內就換新帳號回來。
事件經過
- 9/21 起:攻擊者帳號開始上架假 Qwen2 模型,從單純植入 SSH 公鑰的後門,逐步演進成無檔案(fileless)執行的挖礦程式(Pluto Security)。
- 10 月中:Pluto 透過掃描模型儲存庫裡的可執行 Python 程式碼發現第一波,通報 Hugging Face 與 ModelScope 後帳號被下架(Pluto Security)。
- 下架後數日:第二波以新帳號上架 19 個儲存庫,把寫死的 SSH 金鑰改成反向 Shell,並出現從容器逃逸到宿主機的腳本(Pluto Security、BleepingComputer)。
- 10/29~11/3:Pluto 發布完整報告,iThome、BleepingComputer、The Next Web 等媒體跟進報導。
重點
| 項目 | 數字/內容 |
|---|---|
| 惡意儲存庫 | 31 個(第一波 12 個、第二波 19 個),分布於 7 個帳號 |
| 累計下載 | 連同相關模型超過 3.2 萬次(下載數不等於實際受害數) |
| 主打樣本 | MENXIANGYU/qwen2-tiny,10/28 時下載約 2.8 萬次 |
| 觸發條件 | 以 trust_remote_code=True 載入,config.json 的 auto_map 指向惡意 .py 檔 |
| 目標環境 | 自架推論的 GPU 主機(特別是 Xinference、GPUStack)、租用 GPU、共用研究筆記本、CI 流程 |
| 掃描器有沒有抓到 | 沒有:Hugging Face 的防毒(ClamAV)與合作掃描器主要看權重檔格式,惡意 Python 檔被判為安全 |
數字來源:Pluto Security 原始報告;31 個儲存庫、3.2 萬次下載等數字亦經 iThome、BleepingComputer 報導。
- 為什麼權重沒問題也會中招:Transformers 遇到自訂模型架構時,會把儲存庫裡的 Python 檔下載並 import,Python 在 import 時就會執行檔案最上層的程式碼,所以惡意程式在「定義模型類別」之前就已經跑完。
- 躲藏手法:挖礦程式以
memfd_create放在記憶體中執行,程序名稱偽裝成核心執行緒[kworker/u20:1],並在.bashrc、.profile寫入自動重啟;下載時刻意忽略系統代理伺服器設定(Pluto Security)。 - 刪掉模型不等於清乾淨:後門(SSH 金鑰、反向 Shell、啟動腳本)會在挖礦停止後繼續存在。
- 攻擊者資訊:Pluto 依簡體中文註解、阿里雲 C2 等線索,評估為以獲利為目的的中文使用者或小團體;此為單一資安公司的研判。
對你的實務建議
企業/IT 管理者、AI/ML 團隊
- 盤點是否載入過相關模型:搜尋程式碼、Notebook、CI 設定與模型快取(
~/.cache/huggingface)中是否出現qwen2-tiny、qwen2-final、MENXIANGYU、hhzz667、wjsbg等名稱;完整 IoC 清單見 Pluto 報告。 - 檢查主機跡象:
/tmp/.cch/目錄、svc.py程序、帶有挖礦參數的[kworker/u20:1]、.bashrc被追加的啟動指令、authorized_keys中的陌生金鑰、Xinference 中以qwen2-tiny-開頭的奇怪模型名稱。 - 確認中招就當成整台淪陷:先隔離、保留證據,再從乾淨映像重建;並從另一台乾淨機器輪替該主機能存取的所有 Token、雲端憑證、SSH 金鑰。
- 預設禁止
trust_remote_code=True:真的需要時,先人工審查auto_map指到的每個.py檔,再用revision=鎖定審查過的 commit。 - 模型也是軟體供應鏈:建立內部模型白名單或鏡像倉庫;在隔離、低權限、無生產環境密鑰、對外連線受限的環境中測試第三方模型。
- Xinference、GPUStack 等推論服務要加驗證:不要讓 API 無驗證暴露在網路上;監控 GPU 使用率異常與雲端帳單暴增。
一般用戶
- 在家跑本機 LLM 的玩家注意:從 Hugging Face 下載模型時,優先選官方或知名組織帳號;看到要求
trust_remote_code=True的不明小模型,先不要跑。 - 優先用 safetensors/GGUF 格式並搭配主流工具:例如 LM Studio、Ollama 等,少用來路不明的 Python 載入腳本。
- 電腦風扇狂轉、GPU 莫名滿載要警覺:可能是被拿去挖礦,先斷網再檢查。
資料來源
- Pluto Security:Load/Mine: A Hugging Face Malware Campaign Returns After Takedown(2026/10/29)
- iThome:Hugging Face遭惡意模型濫用,31個儲存庫散布挖礦程式與後門(2026/11/3)
- BleepingComputer:Hugging Face malware campaign returns to hijack GPUs for crypto mining
- The Next Web:Pluto Security details how a trust_remote_code download turns into malware
發表留言