觀點 · 資訊分享

sentence-transformers 被列 9.3 分漏洞:trust_remote_code=False 擋不住本機資料夾裡的程式

熱門的 Python 嵌入模型套件 sentence-transformers 被公開 CVE-2026-68770:只要模型路徑在本機存在,「不信任遠端程式」的開關就失效。官方在 5.6.0 先加警告,6.0 起才會強制要求。

發布
2026-08-01
篇幅
約 5 分鐘 · 2,113 字
結構
8 節 + 3 題常見問題
標籤
#sentence-transformers#CVE-2026-68770#trust_remote_code#本地 AI#供應鏈安全
sentence-transformers 被列 9.3 分漏洞:trust_remote_code=False 擋不住本機資料夾裡的程式

一句話看懂:常見的 Python 嵌入模型套件 sentence-transformers 被公開 CVE-2026-68770:載入「本機模型資料夾」時,就算你設了不信任遠端程式的開關,資料夾裡的 Python 程式仍會被執行。

AI 嵌入套件的信任開關失效資訊圖卡:載入本機模型資料夾時,信任開關關了也會執行裡面的 Python

先用白話講:trust_remote_code 是什麼?

你在網路上下載一個 AI 模型,它常常不只是一個「資料檔」,還附帶一些 Python 程式,負責告訴程式怎麼讀它、怎麼算。這就像你收到一個包裹,裡面除了商品,還附了一張「請照這張紙上的步驟操作」的說明。

如果那張說明被人動過手腳,你照做就中招。所以載入模型的函式庫通常有個安全開關,叫 trust_remote_code:預設是 False,意思是「我不信任包裹附的程式,不要執行」。只有你明確改成 True,才會執行。

這次的問題是:這個開關在某個情況下沒有擋住。

發生什麼事

7 月 31 日,sentence-transformers(一個很多人拿來做文字嵌入、向量搜尋的套件)的 CVE-2026-68770 公開。GitHub 的公告把它標為 Critical,分數 9.3:

  • 漏洞在哪:載入模型時,套件有一段判斷「這個程式能不能信任」的檢查,其中有個條件是「只要這個路徑在本機檔案系統上存在,就算通過」,而且完全不看 trust_remote_code 是 False
  • 會怎樣:如果模型資料夾裡放了 modeling_*.py 這類 Python 檔,並用 modules.json 指向它,那麼用 SentenceTransformer(路徑, trust_remote_code=False) 載入時,這些程式會在載入的當下被執行
  • 前提:攻擊者要能控制或影響磁碟上那個模型資料夾的內容

官方怎麼處理?

這裡有個細節要看清楚。GitHub 公告寫受影響版本是 5.6.0 之前、修補版本是 5.6.0。但看 5.6.0 的發行說明(2026 年 6 月 16 日發布,比 CVE 公開還早):

  • 專案一直以來把任何本機模型資料夾視為隱含可信,和 transformers 不同
  • 5.6.0 開始,載入本機自訂程式時會發出 FutureWarning(警告)
  • 官方預告:從 6.0 起,才會像 transformers 一樣,必須設 trust_remote_code=True 才能載入本機自訂程式

也就是說,5.6.0 只是加警告,並沒有擋下來。用 5.6.0 時看到警告,就是提醒你「這個資料夾的程式會被執行」。

風險有多大?

你的狀況 風險
只載入自己訓練、自己管理的資料夾 低,別人沒機會改你的檔案
載入別人傳給你、或從不明來源抓下來的資料夾 高,等於執行對方給的程式
在共用伺服器上,多人都能寫入模型資料夾 中到高,要看誰有寫入權限

評分向量寫的是「網路攻擊、不需權限」,但描述的前提卻是攻擊者要能影響模型資料夾,這兩者讀起來有落差。實際風險取決於你的模型資料夾從哪裡來。

給開發者的技術細節

  • 檢查版本:pip show sentence-transformers,低於 5.6.0 的先升級;升級後看到 FutureWarning,就表示那個資料夾含有會被執行的自訂程式
  • 不要把「設了 trust_remote_code=False」當成對本機資料夾的保護
  • 模型資料夾的來源:下載後先看資料夾裡有沒有 .py 檔與 modules.json 指向的自訂模組
  • 6.0 之後的行為(必須設 True 才能載入自訂程式)是 5.6.0 發行說明的預告;我沒有確認 6.0 的實際內容,升版前請讀官方的遷移說明

我的看法

玩本地 AI 的人,下載別人整理好的模型資料夾是很常見的做法。這則提醒我的是:模型不只是資料,它常常還帶著程式。我們習慣說「模型檔」,但一個資料夾裡有 .py 檔的時候,它其實就是一個小型的程式專案。

我會建議的做法很簡單:只從有名的來源下載;下載後先掃一眼資料夾裡有沒有 .py;在自己的 NAS 或伺服器上,把模型資料夾設成唯讀;不要在跑著重要服務的同一台機器上,隨便載入不明來源的模型。

名詞小辭典

  • sentence-transformers:把句子變成一串數字(向量)的 Python 套件,常用於語意搜尋與 RAG。
  • trust_remote_code:載入模型時,決定要不要執行模型附帶的自訂程式的開關。
  • FutureWarning:Python 的警告類型,提醒「以後行為會改變」,但這次還不會擋下。
  • CVE:全球通用的資安漏洞編號。

資料來源

常見問題

trust_remote_code 是什麼?
是載入 AI 模型時的一個安全開關:模型附帶的自訂 Python 程式,只有在你明確設為 True 時才會被執行。設成 False 的本意,是讓你可以放心載入來路不明的模型。
我已經用了這個套件,要怎麼辦?
先升級到 5.6.0 以上,載入本機自訂程式時會出現警告,看到警告就代表那個資料夾裡有會被執行的自訂程式;同時只載入來源可信的模型資料夾,不要把別人給的資料夾直接拿來載入。
這個漏洞一定是遠端攻擊嗎?
不一定。評分向量寫的是網路攻擊、不需權限,但官方描述的前提是攻擊者能控制或影響磁碟上的模型資料夾內容;實際風險要看你的模型資料夾從哪裡來、誰能寫入。
LINE