![]()
企業用來建置應用程式的主要 AI agent 框架中,存在近一打的漏洞,其中部分為嚴重漏洞,這些漏洞揭示了超越 prompt injection —— 或任何單一模型 —— 的安全失效,Check Point 研究人員表示。
「我們的研究顯示了一個更深層的失敗:在許多 agentic 框架中,由 prompt 控制的內容可以跨越界線,進入受信任的框架邏輯本身,」Yarden Porat 和 Shahar Tal 在一篇關於週三 Black Hat 演講的文章中指出,該演講主題為跨 AI agent 框架的後注入攻擊,他們也與 The Register 討論了這一點。
「一個 agent 框架中的 bug 不是單一產品的 bug —— 而是整個類別 AI 應用程式所依賴的層級中的 bug,」Tal 告訴我們。「而且 agent 不需要危險的工具就能被用來對付你:讀取錯誤的文件就足夠了。我們建置這個層級的速度,遠比我們知道如何防護它的速度還快。」
研究人員花了一年時間,試圖破解企業使用的各種框架,包括 LangChain、LangGraph、CrewAI、AutoGen、Microsoft Agent Framework 和 Google ADK。在這些框架中,團隊發現並揭露了 11 個漏洞。
「幾乎沒有一個是全新的 bug 類別,」Tal 說。「那是 insecure deserialization、server-side request forgeries、path traversals、use-after-free。這些是我們 20 年前就學會如何修復的 bug,而它們現在卻存在於會讀取你的收件匣、或更新你資料庫的 agents 之下。」
這些是舊型的威脅,而模型並非弱點,他補充道。失效存在於「模型周圍的管線,而我們認為這一直被忽略了,」Tal 告訴我們。「有大量研究投入 prompt injection 和防護,這很重要,但那只是開始。」
防護者應該假設 prompt injection 會發生,研究人員表示。bug 在於框架如何處理該注入 —— 而在這些案例中,威脅獵人們發現框架往往無法將攻擊者控制的內容保持在資料平面。這允許它影響受信任的編排、記憶體、狀態、路由和系統指令。
例如,兩人發現 Microsoft Agent Framework 中一個嚴重的 checkpoint deserialization bug,導致遠端程式碼執行。
「Agents 有 checkpoints,這是讓它們儲存狀態或倒回較早時間點的方式,」Tal 解釋。
這些 checkpoints 是 agent 狀態或特定時刻任務進度的儲存快照,它們將資料(例如對話歷史)序列化到持久儲存中,因此如果發生錯誤,系統會重新載入這個已儲存的狀態,而不是從頭開始。
在這個案例中,Check Point 團隊發現了一個不安全的 deserialization 問題,透過 prompt injection,agent 載入了不受信任的 checkpoint 資料,這可能允許攻擊者在系統上執行惡意程式碼。「一個人的訊息植入 payload,然後另一個人倒回自己的工作階段,這會觸發 payload,現在攻擊者就在那台伺服器上取得 shell,」Tal 說。
Microsoft 認可研究人員的發現,支付了 10,000 美元的漏洞賞金並修復了該問題。但因為該框架在 Check Point 發現漏洞時並非一般可用產品,Microsoft 並未發佈 CVE。
Microsoft 告訴我們,它感謝研究人員回報該漏洞。「我們已釋出強化 Agent Framework 的保護措施,並防止概念驗證中所展示的具體攻擊路徑,」一位發言人告訴 The Register。「此外,我們更新了特定 checkpoint 檔案,加入額外語言來定義安全邊界。」
兩人也發現了 Google ADK(agent development kit)的漏洞。然而,研究人員告訴我們,Google 的回應不同,並未完全修復該漏洞或發佈 CVE。
「ADK 內建了一個開發助理,可以寫入檔案,而且即使它在應用程式列表中被隱藏,仍然可以透過 HTTP API 存取,」Porat 告訴我們。
為了突破這個信任邊界,攻擊者開啟一個工作階段,要求 ADK 寫入一個在 import 時執行 Python 程式碼的 agent,然後要求伺服器執行該 agent,他解釋。伺服器接著會 import 該檔案並執行攻擊者的程式碼。
「該 API 預設沒有驗證,而且 adk deploy cloud_run 會發佈相同的 API,因此在預設的 Cloud Run 部署中,它可以在沒有憑證的情況下被存取,」Porat 說。「從那裡它可以取得環境的 API keys 和容器中的 Google Cloud 服務帳戶。」
Google 未回應 The Register 的詢問。但根據 Check Point,Google 最初認為該問題不是 bug。
「我們爭論的是後果而非機制:在該容器上執行程式碼會取得環境的 API keys 和容器中的 Google Cloud 服務帳戶,這是竊取機密,而不是開發者的不便,」Porat 說。
Google 最終支付了 3,133.70 美元的賞金並發佈了部分修復,我們被告知。
總計,這些漏洞獵人們因其努力獲得了 17,133.70 美元的獎勵。
而且這不是某一家供應商或框架「做得特別糟糕」的故事,Tal 說。「如果有一家是例外,這就會是關於那家供應商的故事,」他補充。「我們的發現是,同樣的 bug 類別出現在它們全部之中。」 ®
https://www.worldprogramming.org/posts/prompt-injection-isnt-the-bug-ai-agent-frameworks-are-t0xbhb