Agentjacking:虛假錯誤報告劫持Claude Code和Cursor執行程式碼
安全研究人員發現一種名為Agentjacking的攻擊方法,利用虛假錯誤報告劫持AI編碼代理,無需惡意軟體或密碼即可在開發者機器上執行任意程式碼。該攻擊針對Sentry錯誤追蹤工具,透過注入惡意命令,成功入侵Claude Code、Cursor和Codex等代理,成功率85%,涉及2388個組織。Sentry未修復根本原因,僅新增了臨時過濾。此漏洞暴露了AI代理處理外部資料的普遍風險。
安全研究人員發現一種名為Agentjacking的新型攻擊,透過偽造錯誤報告劫持AI編碼代理,使其在開發者機器上執行惡意程式碼。該攻擊由Tenet Security披露,無需惡意軟體、密碼或入侵目標系統,而是將編碼代理本身轉化為武器。當開發者要求代理修復錯誤時,代理會以開發者的許可權執行攻擊者的程式碼。
攻擊始於Sentry,一個廣泛使用的錯誤追蹤工具。Sentry允許應用透過公開金鑰(DSN)傳送錯誤報告,該金鑰因設計而暴露在網站程式碼中。攻擊者向該端點傳送一個偽造的錯誤報告,無需密碼,報告中隱藏一個“Resolution”部分,其中包含一條命令,格式與Sentry的正常建議完全一致。編碼代理透過模型上下文協議(MCP)讀取Sentry資料,將響應視為可信。代理無法區分真實崩潰和植入的指令,因此當開發者要求“修復未解決的Sentry問題”時,代理會執行攻擊者的命令。
AI編碼代理已從自動補全發展為可執行終端命令,市場迅速增長,一家AI編碼初創公司最近收入達5億美元。這種能力正是問題的根源。該攻擊在主流代理中均有效,包括Claude Code、Cursor和Codex,在受控測試中成功率85%。研究人員發現2388個暴露的組織,從市值2500億美元的企業到個人開發者,甚至包括一家雲安全供應商。攻擊者透過一次注入的錯誤即可獲取環境變數、AWS金鑰、GitHub令牌、git憑證和私有倉庫URL,進而訪問CI/CD管道和雲基礎設施。
最令人擔憂的是,該攻擊能繞過EDR、防火牆、IAM和VPN,因為整個鏈中沒有任何未授權行為。Tenet將其稱為“授權意圖鏈”。提示詞也無濟於事,即使指示忽略不可信資料,代理仍執行了程式碼。Tenet於6月3日向Sentry報告此問題,Sentry承認問題但拒絕從根本上修復,稱其“技術上不可防禦”,僅新增了一個過濾器來阻止特定負載字串,這僅處理了症狀而未解決根源。這種僵局揭示了真實問題:漏洞不僅存在於Sentry,而是代理處理任何外部資料的方式。類似風險可能存在於支援票據、GitHub問題或文件中。另一項測試成功透過釣魚攻擊AI郵件代理洩露了AWS金鑰。隨著企業急於將代理投入生產,這一教訓至關重要:與工具整合的代理也提供了新的入侵途徑。正如Tenet所說,唯一能阻止攻擊的環節是代理決定採取行動的瞬間。