研究分析 發布於 AIA: 2026年5月27日

讓惡意工作階段混進 agent 流程:A2A agent 如何假借委派任務傳遞隱藏指令

Palo Alto Networks 旗下的 Unit 42 提出 Agent Session Smuggling 這種攻擊手法:惡意 agent 會讓惡意工作階段混進 agent 流程,把隱藏指令夾在跨 agent 互動裡。這裡的遠端 agent 是攻擊者控制、支援 A2A(Agent2Agent,讓不同 agent 彼此溝通、委派任務並回傳結果的協定)協定的外部研究助理;金融助理會透過 A2A 把任務交給它,而它會利用已建立的工作階段(session,會保留上下文和任務狀態的一段互動),在看似正常的委派任務中偷塞額外指令。PoC(概念驗證,用來示範攻擊可行性的測試案例)裡,金融助理把市場新聞研究交給惡意研究助理,結果對方先套出系統設定、對話歷史和工具可以怎麼被呼叫,再誘導金融助理執行未授權買股;防禦重點是:跨 agent 訊息不能自動繼承信任,必須綁定 agent 身分、權限傳遞鏈、這次任務原本允許使用的資料與工具、資料來源和高風險動作檢查。

Agent Session SmugglingTool AuthorizationSession IsolationAgentic AIA2A Security
9 項對應的 AIDEFEND 防禦手法
來源: When AI Agents Go Rogue: Agent Session Smuggling Attack in A2A Systems 
作者: Jay Chen and Royce Lu (Unit 42)
原文發布: 2025年10月31日

威脅分析

  • 使用者一開始只是提出正常的委派任務。 金融助理要查市場新聞,於是把研究任務交給遠端研究助理。這會建立一個 A2A 工作階段,讓遠端 agent 可以在同一段任務裡和客戶端 agent 多次往返。
  • 惡意遠端 agent 把工作階段變成偷塞指令的通道。 在使用者提出需求、系統回覆看似正常答案之間,惡意研究助理會送出額外指令。使用者看不到這些中間指令,但客戶端 agent 可能因為工作階段會保留上下文,就把它們一起帶到後續判斷裡。
  • 第一個 PoC 先造成內部資訊外洩。 惡意遠端 agent 誘導金融助理交出對話歷史、系統設定、可用工具,以及工具可以怎麼被呼叫。這些資訊會讓攻擊者更清楚知道金融助理能做什麼、該怎麼引導它。
  • 第二個 PoC 從資訊外洩跨到實際動作。 攻擊者知道工具介面後,就誘導金融助理呼叫 buy_stock,在沒有使用者授權的情況下買進 10 股股票。也就是說,問題不只是回答被污染,而是 agent 真的被惡意引導,執行了買股票這類有實際影響的高權限動作。
  • Unit 42 並不是說 A2A 協定本身有漏洞。 這篇研究提醒的是,A2A 工作階段會保留前後文;如果遠端 agent 其實不可信,系統卻把它在同一個工作階段裡說過的話繼續當成可信內容,就可能讓隱藏指令一路混進後續判斷和工具動作。
  • 真正的安全邊界是權限如何被委派出去。 遠端 agent 的回覆,不應該只因為出現在有效工作階段裡,就自動繼承客戶端 agent 的工具、記憶或操作權限。

適用的 9 項 AIDEFEND 防禦手法

AID-M-009.003
Agent Identity, Delegation Lineage & Authorization Context
極高
這是最直接對到核心問題的控制。每一則遠端 agent 訊息,以及它引發的每個工具動作,都應該帶著可稽核的執行期身分:原始使用者是誰、客戶端 agent 是誰、遠端 agent 是誰、任務 ID 是什麼、權限傳遞鏈(delegation lineage,記錄任務和權限是從誰一路傳到誰)怎麼走、被委派的範圍到哪裡。Unit 42 提到的 AgentCard(agent 用來宣告身分、來源和能力的資料卡)可以幫忙確認遠端 agent 的身分,但只有身分還不夠;系統還要知道這條指令是誰給的,以及它是否仍在被授權的任務範圍內。
AID-M-009.002
Authority Envelope & Action Risk Classification
極高
Agent Session Smuggling 的危險,在於一個看似單純的研究任務,可能從資料外洩一路升級到高權限動作,例如揭露內部資訊或執行交易。權限信封(authority envelope,系統替某段 agent 任務畫出的可機器檢查邊界)應該寫清楚這次任務允許做什麼:任務目的、可碰的資料類型、可用工具類別、是否能做有副作用的動作、預算上限,以及可以委派幾層。市場新聞研究可以回傳摘要和來源,不應該能揭露系統設定、列出高權限工具,或授權買股。
AID-H-018.004
Intent-Based Dynamic Capability Scoping
極高
客戶端 agent 應該從使用者原始意圖推導出這段工作階段真正需要的最小工具範圍。以 Unit 42 的例子來說,委派市場新聞研究時,遠端研究助理只需要回傳新聞摘要和引用來源;buy_stocksell_stock、讀取個人投資組合、修改帳戶設定這些工具,都不應該進入這段委派流程能碰到的範圍。
AID-H-018.006
Continuous Authorization Verification (Anti-TOCTOU)
這種攻擊會在工作階段開始後,慢慢改變原本任務的意思;所以授權不能只在建立 A2A 工作階段時檢查一次。每次要交易、揭露資料、寫入記憶或呼叫高權限工具前,系統都要重新確認:這個動作是否仍然符合原始任務、不可任意改寫的工作階段資料、權限傳遞鏈和目前風險狀態。這可以避免一開始看起來合理的委派,後來被偷換成另一個任務。
AID-H-018.003
High-Impact Independent Validation & Approval Gate
Unit 42 建議對關鍵動作做模型影響不到的第二條確認管道,這和這項 technique 很直接對上。交易、付款、帳戶變更、基礎設施異動、分享 secrets、寫入長期記憶這些高影響動作,都不應該只靠對話裡的文字當成核准證據。比較好的做法是用靜態 UI、推播核准,或政策引擎做第二次確認,讓遠端 agent 無法在同一段對話裡改寫批准流程。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
遠端 agent 傳來的內容應該被標成不受信任的資料,並在每個值的層級追蹤來源和機敏程度。系統設定、對話歷史、使用者個人資料、投資組合資料、工具可以怎麼被呼叫,以及 secrets,不應該因為遠端 agent 問了,就被送回遠端通道。相反地,系統也要避免把遠端 agent 提供的值,直接塞進交易、付款或其他高影響工具參數裡。
AID-H-017.006
Agent Delegation-Graph Bounds & Capability Attenuation
每一層 A2A 委派都要綁定原始使用者與任務、指向上一層委派、設定短效期限,而且權限只能往下縮,不能在轉交任務時變大。系統應在送出委派前拒絕權限擴張、循環委派、重複 agent、無法驗證的權限傳遞鏈,以及超過政策深度的路徑,避免遠端研究任務繼承客戶端 agent 的交易或內部資料揭露權限。
AID-I-004.009
Peer-Agent Message Context Quarantine & Promotion
通訊已通過身分驗證,不代表另一個 agent 傳來的內容就能當成可信指令。遠端訊息原文應先隔離在模型上下文之外;驗證通過後,只取出這次任務需要、型別明確且長度受限的欄位,標示為來自不可信的對等 agent(peer agent),再提供給模型。這些資料不能附帶任何委派權限。這能直接阻止隱藏中間指令悄悄成為客戶端 agent 的上下文或工具權限。
AID-H-004.003
Secure Agent-to-Agent Communication
接收端在接受 A2A 工作或揭露 task data 前,必須驗證 peer 身分、A2A protocol 版本、payload integrity、replay state、task/context ownership、合法 task transition、stream order、callback authenticity 與每次 request 的 authorization。這直接處理「合法 stateful session 被拿來夾帶額外跨 agent 指令」的問題;只有路徑另外跨越終止式或非同步 intermediary 時,才需要通用的 end-to-end message envelope 控制。

身為資安防禦者,我們應該這麼做

  • 盤點所有 A2A 或多 agent 整合路徑,特別是其中一個 agent 可以把任務委派給遠端 agent,而客戶端 agent 手上又有金融交易、管理操作、程式碼執行、寫入記憶或匯出資料等工具的情境。
  • 要求遠端 agent 有可驗證身分,並在每一則訊息保留權限傳遞鏈。至少要記錄原始使用者意圖、客戶端 agent、遠端 agent、委派任務、工作階段 ID,以及這段委派允許使用的能力範圍。
  • 替每段委派工作階段建立很窄的權限信封。研究任務就是研究任務,不應該自動繼承交易、帳戶管理、secrets、系統設定或工具探索權限。
  • 高影響動作要走獨立確認管道。遠端 agent 的訊息、工具輸出或工作階段狀態,不應該成為交易、付款、刪除、基礎設施變更或敏感資料外洩的唯一核准依據。
  • 把遠端 agent 內容標成不受信任資料,並在資料出口做政策檢查。系統設定、對話歷史、使用者個資、工具可以怎麼被呼叫、憑證和其他機敏值,除非政策明確允許,否則不能從遠端 agent 通道流出去。
  • 加入有狀態測試與監控。測試用的遠端 agent 應該嘗試從原始任務一路偏移到工具探索、要求未顯示的系統設定、對話紀錄與工具資訊和未授權動作,讓團隊能確認這條鏈在進到正式環境前就會被擋下來。

結論

Agent Session Smuggling 值得寫成 AIA,是因為它把多 agent 系統裡一個很容易被視為正常委派的風險講清楚了。真正危險的不是遠端 agent 說了什麼而已,而是客戶端 agent 可能把那些內容當成可信的工作階段內容與狀態,再帶進高權限工具。AIDEFEND  在這裡對到的實務防線包括:agent 身分、權限傳遞鏈、任務範圍限制、持續授權檢查、第二管道確認、逐一追蹤每個資料值的流向、信任狀態降級、有狀態監控,以及可重複執行的惡意委派測試。