# Hugging Face 模型檔案可能執行隱藏程式碼

Published: 2026-10-12

惡意模型套件可以在不安全的載入過程中執行程式碼。三個有記錄的案例解釋了 Pickle 反向 Shell、損壞檔案掃描器的行為以及研究演示的模型名稱混淆，並明確限制了憑證竊取的主張。

Canonical: https://thedailydiff.dev/zh-TW/video/2026-10-12-huggingface-model-malware/

## 本影片重點

- 數值模型權重、可執行序列化和自訂儲存庫程式碼是不同的東西。
- JFrog 和 ReversingLabs 記錄了反向 Shell 有效負載；他們選定的報告並未證實從具名受害者竊取憑證。
- Checkmarx 模型混淆是一項需要匹配遠端模型和不安全載入的研究演示。
- 偏好 safetensors 和修補過的載入器，審查並固定自訂程式碼，並將不熟悉的套件與個人秘密和不必要的網路存取隔離。

## 章節

- 0:00 模型下載如何邀請訪客？
- 0:35 載入器如何執行包裹的指令？
- 1:09 哪些秘密在程式的觸及範圍內？
- 1:38 為什麼遺失的本地路徑會變成遠端模型？
- 1:55 損壞的套件如何規避舊掃描器？
- 2:44 什麼讓金鑰在訪客觸及範圍之外？
- 3:12 我為什麼要標記此為 NEEDS REVIEW？

## 翻譯文字稿

譯自英文原版旁白。可用的音訊和字幕由 YouTube 控制。

### 模型下載如何邀請訪客？

0:00 模型檔案只是磁碟上的數字。 載入一個惡意 Hugging Face 套件開啟了一個遠端 Shell， 這是一種對本地 AI 的雄心勃勃的解釋。 載入如何變成執行？ 它可以觸及哪些秘密？ 到底是什麼阻止了它？ 並記住一個謎題。 模型可能在危險部分已經發生之後載入失敗。

0:18 這是 The Daily Diff，幕後探秘。 Hugging Face 是一個分享機器學習模型的平台， 數據集和應用程式。 模型權重是學習到的數字。 儲存庫還可以包含配置和 Python 程式碼。 這裡的危險是當您載入它時，可執行套件會進入您的電腦。 Pickle 儲存帶有重建指令的 Python 物件。

### 載入器如何執行包裹的指令？

0:37 不安全的載入器可以遵循這些指令並在解包時呼叫函數。 下載位元組將包裹放在您的磁碟上。 反序列化將其打開。 某處，檔案格式已被提升為無薪系統管理員。 JFrog 於 2024 年 2 月報導了 Goober Two。 其 Pickle 有效負載開啟了一個反向 Shell，向外連接以提供遠端命令存取。 儲存庫已被刪除。 JFrog 還發現了暗示研究人員參與的線索，

1:02 因此歸屬尚不確定。 不受歡迎的訪客已被記錄。 尚未證實從實際受害者竊取憑證。

### 哪些秘密在程式的觸及範圍內？

1:09 以您的使用者身份執行的程式碼可以讀取該程序可以讀取的任何內容。 掛載的雲金鑰或可存取的令牌成為可能的目標。 發送出去還需要一個正常工作的網路路由。 單憑數值權重沒有神奇的憑證權力。 您的權限提供了模型卡中有趣的部分。 還有另一扇門。 有些模型要求您信任遠端程式碼，這授權了來自儲存庫的 Python。 Safetensor 檔案可以放在該程式碼旁邊。

1:32 檢查權重格式涵蓋了一個入口，而儲存庫的程式碼仍在等待您為其 提供訪客徽章。

### 為什麼遺失的本地路徑會變成遠端模型？

1:38 Checkmarx 演示了模型混淆。 遺失的本地模型路徑可以解析為具有匹配名稱的公共儲存庫。 將其與遠端程式碼啟用結合，錯誤的套件就可以執行。 這是一個涉及一家未具名公司的樣本的研究演示， 在一天內得到糾正。 遺失的資料夾獲得了一位房東。 ReversingLabs 於 2025 年 2 月報導了兩個樣本， 將該技術稱為 nullify AI。

### 損壞的套件如何規避舊掃描器？

1:58 兩者都包含反向 Shell。 他們的 7zip 打包阻止了普通的 PyTorch 載入， 因此此路徑需要提取和不安全的解序列化。 損壞的 Pickle 流也暴露了掃描器的盲點。 在任何人打開包裹之前，掃描失敗值得調查。 在研究人員無害的測試中，指令在載入器 到達損壞部分並引發錯誤之前寫入了一個檔案。 想像一下打開一個包裹，釋放了浣熊，然後才注意到運送標籤無效。

2:18 錯誤訊息帶著完美的語法和糟糕的時機到達。 Hugging Face 在 24 小時內刪除了報導的樣本並更改了掃描器。 該特定發現促使了修復。 安全掃描是有用的證據，將每個掃描器錯誤視為一份健康的證明仍然是對失敗 的一個非常慷慨的解釋。 偏好 safetensors 和當前修補過的載入器。 PyTorch 從版本 2.6 開始縮小了其預設載入器。 審查自訂程式碼並固定已審查的版本。

2:43 在隔離狀態下執行不熟悉的套件，沒有個人金鑰，

### 什麼讓金鑰在訪客觸及範圍之外？

2:46 並限制網路存取。 一個裝滿掛載憑證的容器是一個帶有命名空間的禮物籃。 那個開頭的謎題有答案。 載入失敗告訴您執行停止在哪裡。 較早的指令可能已經運行。 在打開包裹之前，將秘密放在其觸及範圍之外。 判決，幕後探秘。 載入器。免費下載應該附帶一個模型，訪客名單應該

3:08 仍然是我的決定。 如果您寧願閱讀而不是聽我說，The Daily Diff 會在每天早上免費發送到您的收件箱，

### 我為什麼要標記此為 NEEDS REVIEW？

3:16 網址是 thedailydiff.dev，連結在下方。 這就是今天的 The Daily Diff。 我是來自 Axrisi 的 Niko。 負責任地合併。 Merge responsibly. SHIP IT NEEDS REVIEW

## 來源

- [Data Scientists Targeted by Malicious Hugging Face ML Models with Silent Backdoor](https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/) — JFrog
- [Malicious ML models discovered on Hugging Face platform](https://www.reversinglabs.com/blog/rl-identifies-malware-ml-model-hosted-on-hugging-face) — ReversingLabs
- [AI Model Confusion: An LLM/AI Model Supply Chain Attack](https://checkmarx.com/zero-post/hugs-from-strangers-ai-model-confusion-supply-chain-attack/) — Checkmarx Zero
- [Pickle Scanning](https://huggingface.co/docs/hub/en/security-pickle) — Hugging Face
- [Safetensors](https://huggingface.co/docs/safetensors/en/index) — Hugging Face
- [Loading custom models](https://huggingface.co/docs/transformers/en/models) — Hugging Face
- [Serialization semantics](https://docs.pytorch.org/docs/2.14/notes/serialization.html) — PyTorch
