2026-05-11 — views
Hugging Face 惡意供應鏈攻擊:typo-squat 衝上 #1 趨勢 — 18 小時內 244K 下載後才被下架
Open-OSS/privacy-filter typo-squat 5/11 衝上 Hugging Face 趨勢 #1 — 18 小時內 244K 下載、667 likes 才被下架。Windows 信息竊取者透過 loader.py。行動項:在 from_pretrained 中釘 revision SHA。
一個名為 Open-OSS/privacy-filter 的惡意 Hugging Face 儲存庫 — 合法隱私工具套件的 typo-squat — 於 2026 年 5 月 11 日 上傳數小時內衝上平台 #1 趨勢,在 Hugging Face 安全團隊下架前累積 244,000+ 下載與 667 個 likes,不到 18 小時。
Payload
該 repo 以「隱私工具模型載入器」為偽裝,內含 Windows infostealer(信息竊取者)。惡意程式碼藏在 loader.py,當模型以 trust_remote_code=True 載入時 from_pretrained() 等輔助函式會預設執行它(在許多情況下,視所用 loader API 與 client 函式庫版本,即使沒有該旗標也會執行)。
Infostealer 鎖定:
- 瀏覽器 cookies(Chrome、Edge、Brave)
- Windows Credential Manager 儲存的憑證
- 加密貨幣錢包種子片語(Metamask、Phantom、Trust Wallet)
%USERPROFILE%\.ssh\下的 SSH 私鑰%USERPROFILE%\.aws\credentials的 AWS 憑證
外洩走 Telegram bot webhook,JFrog 研究員追蹤到一個已知的威脅組織群,先前在 npm 供應鏈攻擊中曾出現。
為何竄升那麼快
該 repo 名稱落在搜尋趨勢列表,是因為它正好位於兩個真實需求訊號的交集:「privacy」工具(近期 EU AI Act 新聞後搜尋量高)與「filter」套件(被許多 RAG pipeline 使用)。攻擊者早期用 bot 驅動的 likes 把它推上趨勢首頁,之後就由自然發現完成下載。
244K 下載這個數字才是更可怕的一半 — 它告訴你 typo-squat 戰術轉到 AI 供應鏈上同樣有效,跟在 npm 與 PyPI 一樣。5/8 的 MCP 供應鏈論文量化了 MCP 暴露面;這次事件對 HuggingFace 點出了同樣的問題。
Hugging Face 的回應
安全公告承諾:
- 上傳時自動掃描惡意程式樣態(未來 30 天內陸續上線)
- Typo-squat 偵測 於上傳時觸發(標記與熱門套件編輯距離 ≤2 的 repo)
loader.py執行警告 在請求trust_remote_code=True時於 UI 顯目顯示
這些是被動措施。結構性問題 —— 載入模型可執行任意程式碼 —— 依然存在。
實戰筆記
本週三件事,按優先序:
1. 把每個 from_pretrained() 呼叫釘到具體的 revision SHA。 生產程式碼裡別用 revision="main"。用 revision="<完整 40 字元 sha>"。這是最強的緩解措施 —— 即使上游 repo 被入侵,你的程式仍會載入你已審核過的版本。
2. 稽核相依圖中所有 trust_remote_code=True 的使用。 多數情況下這個旗標不必要;對標準架構模型可以用 AutoModel.from_pretrained(...) 不帶該旗標。該旗標只在模型有自訂 modeling_*.py 檔時才需要。
3. 跑 pip list | grep huggingface 並更新 transformers / huggingface_hub 到最新。Hugging Face 新的 revision-pinning 警告只在近期 client 版本中顯示。
若你出貨的產品在客戶 Windows 機器上使用 HF 模型(桌面 app、內部工具),假設 infostealer 暴露存在,除非你已逐一驗證模型來源。這類事件很可能重演 — typo-squat 戰術現在於 AI 註冊中心已可用。
來源
- Malicious Hugging Face repo takedown — BleepingComputer ↗
- HF safety advisory — Hugging Face blog ↗
- Loader.py malware analysis — JFrog Security Research ↗