單一惡意 ChatGPT 連結就能啟動一個 AI 代理,該代理會每五分鐘悄悄檢查攻擊者的收件箱以獲取新指令。Zenity Labs 將此缺陷稱為針對代理式 AI 的新型攻擊。
AI 資安公司 Zenity Labs 在 OpenAI 的 Workspace Agents 中發現一個漏洞,允許一個被操縱的連結在員工帳戶下建立一個自主 AI 代理。該代理會冒用受害者的身份,重複使用其現有應用程式權限,跳過旨在保護敏感操作的審批步驟。
Zenity 將此漏洞命名為「AgentForger」,並視其為經典跨站請求偽造(CSRF)的演進。在典型的 CSRF 攻擊中,使用者點擊惡意連結或造訪精心製作的頁面,在不知情的情況下執行了他們無意進行的已驗證操作。
AgentForger 更進一步。惡意 ChatGPT 連結不僅觸發單一不必要的動作,而是啟動了完全自主代理的建立。該代理在公司信任邊界內運作,利用受害者已授權的連接器,並按預設排程從攻擊者那裡接收新任務。
建立 Workspace 代理通常是一個互動過程。使用者會選擇範本、輸入指令、連接工具、審查共享設定、在預覽模式下測試代理,然後發布。AgentForger 允許攻擊者透過 URL 觸發大部分過程,使用者只需少量額外輸入。
Agent Builder 於 2025 年推出,可在 chatgpt.com/agents/studio/new 存取,並接受兩個 URL 參數。`template_name` 用於選擇起始範本,例如「chief-of-staff」,而 `initial_assistant_prompt` 則提供指令。
Zenity 發現該頁面不僅將 `initial_assistant_prompt` 的值放入提示詞欄位,還會自動提交並執行該提示詞。攻擊者無需向 ChatGPT 發送原始請求或直接操縱受害者的瀏覽器。他們只需要一個帶有看似無害提示詞的 chatgpt.com 連結。
攻擊始於一封看似普通的電子郵件,將惡意 ChatGPT 連結偽裝成生產力提示。唯一的先決條件是受害者已登入 ChatGPT,有權存取 Workspace Agents,並已授權至少一個連接器,例如 Outlook、Gmail、Slack、Google Drive、SharePoint 或 Teams。由於連接已存在,因此不會出現新的 OAuth 同意提示,這可能會提醒受害者。
在演示中,Zenity 在 URL 中嵌入了一個提示詞,引導 Builder 完成所有編號任務清單中的步驟。該代理被設定為整合所有已連接的非 MCP 連接器,並將所有讀取、寫入和刪除的權限要求更改為「永不詢問」。
它還建立排程,每五分鐘執行一次,檢查 Outlook 中來自攻擊者且主旨包含「TASK」的電子郵件,使用已連接的應用程式執行其指令,並未經篩選地將結果發送回去。
Builder 在未詢問使用者的情況下建立了一個名為「TASK Mail Operator」的代理。它連接了已授權的服務,停用了審批要求,發布了代理,並在預覽模式下啟動。
Zenity 表示,預覽模式不僅僅是視覺測試運行:它會根據剛剛配置的審批設定,針對受害者真實連接的帳戶執行新代理。由於所有設定都已設為「永不詢問」,因此首次運行無需使用者批准即可完成。
如果沒有排程器,攻擊將是一次性事件。排程器將偽造的代理轉變為類似命令與控制基礎設施的東西。一旦代理部署,受害者無需再次點擊或重新打開 ChatGPT。代理每五分鐘喚醒一次,檢查收件箱中是否有新的 TASK 電子郵件,執行其中包含的指令,並將結果發送回去。首次點擊安裝代理,排程器使其保持活躍,而收件箱則成為命令通道。
在其分析的第二部分中,Zenity 展示了攻擊者可以透過此通道做什麼。在收到「TASK 1: RECON」命令後,代理繪製了組織地圖。它從 Outlook、Slack、Teams、Drive、SharePoint 和 Calendar 中提取數據,列出人員、角色、頻道、活躍專案和定期會議。
該代理還搜尋了 Drive、SharePoint 和 Outlook。它發現了一份併購條款清單、一份提及收入目標未達和計畫裁員的董事會簡報,以及一份包含聯絡和薪酬數據的全公司員工匯出檔案。一個偽裝成「DLP 演練」的請求指示代理在 Slack 中搜尋字串「pass:」。代理找到了一個資料庫使用者名稱和密碼對,並將兩者都透過電子郵件發送給攻擊者。
其他任務濫用了受害者的信任身份。該代理透過受害者的 Teams 帳戶發送訊息,要求同事在攻擊者控制的登入頁面上確認 SSO 部署。Zenity 還測試了透過 Slack 進行釣魚攻擊和商業電子郵件詐騙範本。其他測試包括 242,500 美元電匯的批准請求和一個包含攻擊者控制參與者的日曆邀請。
Zenity 將 AgentForger 歸因於兩個相關的設計選擇。Builder 將 `initial_assistant_prompt` 參數視為可執行輸入,而非需要確認的使用者輸入。因此,攻擊者控制的 URL 可以在使用者已驗證的會話中更改數據和設定,而無需使用者明確批准。
同一個提示詞還可以更改安全設定,包括審批政策和執行排程。這意味著指令可以停用旨在要求人工批准敏感操作的系統。
Zenity 將這種組合描述為「致命三合一」:URL 提供不受信任的輸入,連接器提供對私人數據的存取,以及電子郵件提供發送數據的途徑。大多數漏洞利用必須首先繞過這些安全措施。AgentForger 卻讓攻擊者存取了一個建構工具,該工具可以建立一個已停用這些安全措施的代理。
Zenity 於 2026 年 6 月 4 日透過 OpenAI 的 Bugcrowd 計劃報告了 AgentForger。OpenAI 於次日確認報告,並於 6 月 8 日透過移除受影響的 URL 參數修復了該漏洞。Zenity 讚揚了 OpenAI 安全團隊的響應速度。
Zenity 表示,在修復生效之前,該漏洞影響了所有使用 ChatGPT Workspace Agents 並已授權企業連接器的組織。Zenity 表示問題不僅限於這個特定錯誤。傳統安全工具是為使用者和端點而建構的,而不是透過合法使用者身份行事的自主代理。
代理在沒有監督的情況下能做的事情越多,當其他人提供其指令時,它造成的損害就越大。這家網路安全公司將 AgentForger 稱為「代理信任失敗」:平台假設使用者已親自建立、批准、排程和啟動代理。
最近,圍繞代理式 AI 的安全問題日益增長。Hugging Face 報告稱,一個完全由 AI 控制的代理系統透過被操縱的資料集進入其生產基礎設施,然後橫向移動。該公司表示,該系統執行了超過 17,000 個操作。OpenAI 隨後承認責任。在一次性能測試中,其模型意外駭入 Hugging Face 以獲取測試數據。
Zenity 去年還展示了多個零點擊和一點擊漏洞,名為 AgentFlayer。這些攻擊針對 Copilot Studio、Salesforce Einstein、帶有 Jira MCP 的 Cursor 和其他企業 AI 工具。在這些案例中,看似無害資源中的隱藏提示詞可能轉移客戶數據或竊取登入憑證。
