觀點 · 資訊分享
LightGlue 漏洞 CVE-2026-5241:關了 trust_remote_code 仍可能執行惡意程式碼(CVSS 9.6)
NVD 公開 CVE-2026-5241:huggingface/transformers 5.2.0 載入 LightGlue 模型時,模型儲存庫裡的 config.json 能蓋掉 trust_remote_code 的設定,讓攻擊者的 Python 模組在載入時被執行。CVSS 3.1 評分 9.6(CRITICAL),官方已有修補提交。
- 發布
- 2026-06-04
- 篇幅
- 約 5 分鐘 · 2,284 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Hugging Face Transformers 5.2.0 載入 LightGlue 模型時,模型儲存庫裡的設定檔可以蓋掉
trust_remote_code=False這道安全開關,讓攻擊者的程式碼在載入時被執行。

先用白話講:這個漏洞是什麼?
想像你在家裡裝了一道防盜門,並且交代鎖匠:「不要讓陌生人帶來的鑰匙開門」,這就是 trust_remote_code=False。
但這個漏洞的情況是:陌生人不用鑰匙,只要寄來一份「房屋說明書」(模型的 config.json),裡面偷偷寫著「這扇門請改成信任陌生人」。而家裡的自動管理系統剛好會照著說明書改設定,結果你交代的規則被說明書蓋掉了。
發生什麼事
NVD(美國國家漏洞資料庫)記錄,CVE-2026-5241 在 UTC 2026 年 6 月 3 日 14:16 公開(台灣時間 6 月 3 日晚間,自行換算),CVSS 3.1 評分 9.6,等級為 CRITICAL。
- 受影響軟體:
huggingface/transformers5.2.0。 - 漏洞位置:LightGlue 模型的載入路徑。
- 攻擊方式:攻擊者控制一個模型儲存庫(Repository)。受害者用
AutoModel.from_pretrained()載入 LightGlue,即使傳了trust_remote_code=False,LightGlueConfig仍會從不受信任的config.json讀出trust_remote_code的值,並傳進巢狀的AutoConfig.from_pretrained(),結果執行了攻擊者提供的 Python 模組。 - 評分向量:從網路發動、攻擊複雜度低、不需要權限,但需要使用者操作(載入那個模型)。
為什麼這很危險?
trust_remote_code 本來就是用來擋「載入模型時順便執行遠端程式碼」的開關,這次是開關本身被繞過。NVD 描述提到的高風險環境有四類:
- API 推論伺服器
- 研究用 Notebook
- CI/CD 管線
- 模型評估工作者
這些環境常常會自動載入外部模型。描述中列出的可能後果是憑證竊取、橫向移動,或部署持久化的後門。
給開發者的技術細節
問題出在哪
修補提交的差異顯示,舊版 LightGlueConfig 有一個 trust_remote_code 屬性。當 keypoint_detector_config 是字典,而且它的 model_type 不在內建的 CONFIG_MAPPING 裡時,程式會走這一段:
# 修補前的邏輯(節錄自提交的差異)
self.keypoint_detector_config = AutoConfig.from_pretrained(
self.keypoint_detector_config["_name_or_path"],
trust_remote_code=self.trust_remote_code,
)
這個 self.trust_remote_code 是設定物件的屬性,而設定物件是從 config.json 反序列化出來的,所以內容可以由模型作者決定。
官方怎麼修
提交標題是「[LightGlue] Remove remote code execution」,主要改動:
- 刪除屬性:
configuration_lightglue.py與modular_lightglue.py移除trust_remote_code屬性;modeling_lightglue.py建立關鍵點偵測器時,也不再傳入這個參數。 - 只用內建映射:
model_type一律從CONFIG_MAPPING取得,不再走AutoConfig.from_pretrained()載入外部設定。 - 新增檢查規則 TRF014:在
utils/mlinter加入規則,檢查原生模型整合的檔案裡是否使用trust_remote_code,目的是讓後續的程式碼審查能擋下同類寫法。
建議行動
- 確認版本:檢查專案有沒有用 transformers 5.2.0 載入 LightGlue。
- 升級:升到包含修補的版本。NVD 與提交頁都沒有寫明正式版本號,請到 transformers 的發行頁確認。
- 管來源:避免載入來源不明的模型儲存庫,載入前先看過模型的設定檔。
我的看法
這個漏洞提醒我:trust_remote_code=False 是一道重要的防線,但它不是萬靈丹。只要有某條程式路徑,會從不受信任的檔案裡讀出「要不要信任」,這道開關就可能被蓋掉。
從修補提交裡的註解可以看到,LightGlue 當初提供這個參數,是為了支援不在內建清單裡的關鍵點偵測模型(註解舉的例子是 DISK),也就是為了彈性而留的口子。這種「為了方便而開的口子」,在開源工具裡很常見。
對自架 AI 服務、或在 CI 裡自動拉模型的人來說,實務上可以做的有三件:只用信任的來源、把模型下載與執行環境的權限降到最低,再加上固定追蹤依賴套件的安全公告。
名詞小辭典
- CVE:通用漏洞編號,讓大家用同一個編號討論同一個安全問題。
- CVSS:評估漏洞嚴重程度的標準,滿分 10 分,9.0 以上屬於 CRITICAL 等級。
- 遠端程式碼執行(RCE):攻擊者讓目標機器執行他提供的程式碼,通常是最嚴重的一類資安問題。
- trust_remote_code:Transformers 的參數;設為 True 時允許執行模型儲存庫裡附的自訂 Python 程式碼,設為 False 則不允許。