大型語言模型(LLM)經常透過代理(agentic harness),例如 Claude Code 或 Codex,在某台電腦上執行動作,然而 LLM 對提示的回應是在另一台擁有 GPU 存取的電腦上計算的。惡意的 LLM 是否有可能取得其權重載入的主機控制權?這樣的機器是一個高價值的目標:它擁有運行尖端 LLM 的足夠算力,可以輕鬆存取 LLM 的權重,並且與網際網路上的通用電腦相比,它對資料中心內的其他電腦擁有更高的存取權限。

本文探討惡意 LLM 輕易取得主機控制權的可能性。這裡考慮的主要攻擊方式是,LLM 發出一個 token 序列,其語義意義無關緊要,但卻利用了載入 LLM 到 GPU、運行 LLM 生成輸出 token 並將這些 token 解析為回應的軟體中的漏洞。

像任何程式一樣,vLLM 或 SGLang 等推理引擎可能包含可被利用的錯誤。由於 LLM 控制傳遞給推理引擎的 token,因此惡意的 LLM 可以發出一個 token 序列,一個寫得不好的推理引擎會將其誤認為是程式碼或要執行的指令,而不是要返回給使用者的數據。

但肯定所有的推理引擎都是穩健的軟體,這種情況絕不會發生,對吧?

CVE-2025-9141 是 vLLM 的基於 XML 的工具解析器(用於 Qwen3 Coder)中的一個任意代碼執行漏洞。該解析器將幾乎所有工具呼叫參數傳遞給 eval(),允許 LLM 在主機上執行任意代碼。Gemini 自動分析了引入此漏洞的 PR,並正確地將其標記為嚴重的安全漏洞。儘管有此警告,vLLM 的主要維護者卻強制合併了該 PR,並寫道:

不幸的是,將任意 token 序列解析為一個功能齊全的聊天(包含使用者回合、助手回應、工具呼叫等)並不容易,而且確切的過程在不同的 LLM 之間經常不同。這種複雜性增加了可能允許任意代碼在主機上執行的錯誤機會。

現代推理引擎不僅僅是將 token 序列映射到字串。vLLM 的文件列出了對 200 多種模型架構的支援,其範例目錄包含約 35 個 Jinja 聊天範本。現代推理引擎解析許多聊天格式,稍微不正確的解析邏輯就會導致 LLM 的輸出被解釋為要執行的程式碼。

在這個 vLLM 的 issue 中,一位使用者正在討論 LLM 如何與 MiniMax-M3 進行推理,而 LLM 發出了字串 `<mm:think>`。vLLM 錯誤地將這個純字串解析為推理區塊的開頭。所以,而不是:

回應:我會精確地重複你說的話:`<mm:think>`

在那裡,怎麼樣?

回應:我會精確地重複你說的話:

這是一個相當無害的解析器錯誤,但它證明了推理引擎不僅僅是將 token 轉換為字串並將它們串接起來。它們是複雜的系統,處於不斷的迭代中,其開發人員承受著使其盡可能快的巨大壓力。這些因素增加了惡意 LLM 將解析器錯誤轉化為主機上任意代碼執行的風險。

多模態架構允許 LLM 除了純文字外,還能回應圖像或音訊。將模型的音訊或視覺輸出轉換為可用的媒體,可能比解碼文字 token 更複雜。然而,據我所知,目前的多模態 LLM 通常發出受限的媒體 token,而不是任意檔案位元組。一個模型特定的解碼器將這些 token 轉換為像素或波形,然後再編碼為檔案。這使得針對 ffmpeg 或媒體檢視器等軟體的經典損壞檔案漏洞利用對模型來說不那麼直接可及,儘管額外的解碼器、編碼器和原生核心仍然增加了攻擊面。

我目前不認為多模態輸出是主機被攻陷的主要途徑。然而,它提供了比單純文字更高的頻寬,未來的推理引擎可能會以更容易被利用的方式優化這些媒體生成路徑。我也不知道專有模型如何表示圖像和音訊輸出;它們的方法可能帶有不同的風險。

有點可能?我不確定。發現一個有用的漏洞可能是比較困難的一步。利用它所需的 token 序列可能相當不尋常,但這並不使漏洞難以利用。在正確的上下文(例如,一個 LLM 探索 vLLM 的程式碼庫並在此過程中發現漏洞)下,我預計一個尖端 LLM 能夠發出利用它的 token。

一旦 LLM 發現一個利用 token 序列,它就可以將該序列或重建它的指令儲存在可能進入另一個 LLM 上下文的檔案、檔案名或 URL 中。然後,該利用將作為一種持久性提示注入的形式:代理程式可能僅僅透過列出目錄或讀取檔案就能觸發 GPU 主機上的代碼執行。

我相信 OpenAI、Google 和 Anthropic 的安全團隊會對他們內部運行的軟體進行紅隊測試。但是,隨著開源權重 LLM 變得越來越強大,我們將有更多 LLM 在運行於較少受到審查的尖端推理引擎上。這增加了惡意開源權重 LLM 遇到並利用易受攻擊的推理引擎的機會。

另一個攻擊向量可能會出現,因為 LLM 被越來越多地賦予編寫或修改運行它們的推理引擎的任務,通常是為了提高性能。惡意的 LLM 可以利用該存取權限植入後門。推理管線的 C++ 和 CUDA 組件似乎是特別有吸引力的目標:LLM 可以引入一個越界記憶體訪問漏洞,從而在 GPU 或控制它們的 CPU 主機上實現任意代碼執行。

除了對推理引擎進行漏洞紅隊測試之外,還有一些其他措施可能會有幫助: