把 AI 代理的安全問題全部歸因於「模型被提示注入騙了」,容易讓防禦焦點放錯地方。Paolo Costanzo 彙整 2026 年 6 月下旬至 9 月下旬公開的十起代理漏洞後,提出更具操作性的問題:攻擊究竟在模型判斷之前、使用者互動介面、工具連接層,還是代理取得權限後才觸發?原始分析見:https://paolocostanzo.github.io/outside-the-prompt-ai-agent-vulnerabilities-summer-2026/
十起案例真正共同的失守點
來源事實:原文將十起揭露分成四類:「信任之前」、「互動層」、「管線」與「權限」。依作者的分類,其中七起並不需要模型做出錯誤判斷:有些程式在工作區信任提示出現前便已執行,有些核准視窗沒有完整呈現即將執行的內容,另一些則是 MCP 端點缺少驗證。其餘三起確實涉及操縱模型,但最終損害仍取決於代理能讀什麼、能寫到哪裡,以及能否對外傳送資料。
最具代表性的是 GitSpawn。研究者在七款命令列代理中發現八項問題:代理為了理解專案,會在背景執行 git status、git diff 等操作,卻沒有先中和專案自己的 Git 設定。若收到的是連同 .git 目錄一起打包的資料夾,攻擊者便可能透過 core.fsmonitor 指定代理主機要執行的程式。
這項機制可由 Git 官方文件交叉確認:每個儲存庫的 .git/config 本來就會影響 Git 指令行為,而 core.fsmonitor 可以保存要呼叫的監控程式路徑。也就是說,問題不是 Git 憑空產生新能力,而是代理把原本帶有執行語意的設定誤當成純資料。文件見:https://git-scm.com/docs/git-config
代理把傳統漏洞放大成行動能力
另一組案例顯示,所謂「AI 漏洞」有時其實是熟悉的網路應用程式安全問題,只是後端接上的不再是普通查詢功能,而是可以執行命令、讀取憑證或改寫代理記憶的工具。
來源事實:Ruflo 的官方 GitHub 安全公告確認,3.16.3 以前的預設 Docker Compose 部署讓 MCP bridge 在未驗證身分的情況下接受工具呼叫,可能導致容器內命令執行、供應商 API 金鑰外洩,以及 AgentDB 學習資料遭污染;公告給予 CVSS 10.0。這不是提示注入,而是缺少關鍵功能驗證:https://github.com/ruvnet/ruflo/security/advisories/GHSA-c4hm-4h84-2cf3
MCP Python SDK 的 CVE-2026-59950 更凸顯「升級不等於完成修補」。GitHub 公告指出,1.28.1 以前的已棄用 WebSocket transport 未驗證 Host 與 Origin;新版雖加入安全設定,但參數預設仍為停用,因此只升級套件而未啟用驗證,行為不會自動改變。官方建議遷移至 Streamable HTTP:https://github.com/advisories/GHSA-vj7q-gjh5-988w
為何此刻值得注意
合理推論:這批事件的重要性不在「十」這個數字,而在同一種錯誤跨產品重複出現。代理系統把模型、IDE、Git、OAuth、MCP 伺服器與本機權限串在一起;每一層原本合理的功能,經自動化串接後都可能變成另一層的執行入口。傳統聊天機器人的主要風險是輸出錯誤答案,代理的風險則是錯誤答案能立刻轉化為檔案操作、外部請求或命令執行。
MCP 2026-07-28 授權規格也說明了責任邊界:HTTP 授權能力在 MCP 實作中仍屬可選;一旦採用,伺服器與客戶端才須遵循權杖、資源識別與最小權限等要求。規格同時把 Dynamic Client Registration 標為棄用、保留相容用途。這表示「支援 MCP」本身不是安全保證,仍須查驗產品如何實作驗證與授權:https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
容易忽略的限制
這份整理不能直接解讀成「七成代理漏洞與模型無關」。樣本只包含特定三個月內、有公開主要來源且符合作者選取條件的十起揭露,不代表整體漏洞母體;分類本身也有判斷空間。原作者承認,若把 Kiro 或 PromptFiction 移到其他類別,不經模型判斷觸發的比例會落在六至八起之間。
此外,揭露狀態、修補版本與預設設定會持續變動。採購或稽核人員不應把文章中的版本號當成永久清單,而應回到供應商公告,確認目前版本、預設值、是否需要額外設定,以及既有憑證或記憶資料是否已受影響。
對台灣企業的實際意義
作者觀點:台灣企業若正把程式代理導入金融、製造、政府標案或委外開發,安全審查單位不宜只問模型是否有提示注入防護,還應把代理視為一名擁有帳號、終端機與連線能力的外部協作者。尤其是接收客戶壓縮檔、求職作業、外包程式碼或事故樣本的團隊,外來儲存庫在代理碰觸之前,就應進入隔離環境。
- 把含有
.git、MCP 或 IDE 設定的專案視為可執行輸入,在拋棄式虛擬機或容器內先行檢查。 - 要求產品完整顯示即將執行的命令、工具參數與權限變更;無法看完整內容的核准視窗不應算有效控制。
- 將「讀取私有資料」與「對外公開寫入」拆成不同工作,使用不同的最小權限權杖。
- 除對話紀錄外,同步保存程序啟動、工具呼叫、網路連線與權限提升紀錄,因為信任前與管線層事件可能完全不經過模型。
接下來應觀察什麼
值得持續追蹤的指標包括:外來專案能否在信任提示前啟動程序、工具定義變更後是否重新要求核准、每個 MCP 端點是否預設驗證、敏感工具能否各自限縮權限,以及新增工具是否自動套用內容隔離。真正成熟的代理安全,不是期待模型永遠識破惡意文字,而是即使模型、使用者或某個連接元件判斷失誤,系統仍能把後果限制在可接受範圍內。