Salesforce 已修補 Agentforce 的三項漏洞。這些漏洞讓外部攻擊者只靠一個公開的聯絡表單,就能劫持企業自己的 AI 代理。Zenity Labs 於週四公開了這條攻擊鏈,並統一命名為 SalesBleed;在此之前,它與 Salesforce 歷經十一週的修補流程,最後一項於八月封堵完成。
入口是 Web-to-Lead,也就是企業放在官網上、無須驗證即可填寫的業務詢問表單。攻擊者送出一筆夾帶隱藏指令的名單資料,當下不會有任何動靜。這段酬載會一直躺在 CRM 裡,直到某位員工向代理提出再平常不過的要求——幫我看最新的名單、協助處理剛進來的這一筆——代理就會讀到被下毒的紀錄,轉而聽從攻擊者而不是員工的指示。
重點摘要
- Zenity Labs 於 2026 年 6 月 1 日向 Salesforce 通報 SalesBleed,Salesforce 隔日確認;Zenity 在 8 月 19 日驗證最終修補,並於 9 月 24 日對外公開。
- 外洩之所以成立,是因為 Salesforce 的 Trusted URLs 遮蔽機制與實際渲染介面對「URL 在哪裡結束」判讀不同:遮蔽機制只認一份固定的頂級網域清單,而
.fun不在其中。 - 第三項漏洞出在 Reply to a Slack Thread 動作上,它既不需要使用者確認,也不留下發送者歸屬,內部人員因此能披著代理的身分發出釣魚訊息。
遮蔽機制與瀏覽器讀出了兩種結果
Agentforce 有一項名為 Trusted URLs 的控制功能,負責限制代理能連往哪些外部目的地,並遮蔽指向不受信任位置的連結或圖片。Zenity 的研究人員 Alex Apostolov、João Donato、Avishai Efrat 與 Ayush RoyChowdhury 找到兩條繞過它的路徑。
第一,遮蔽機制拿主機名稱去比對一份固定的頂級網域集合,像 .fun 這種未被收錄的網域,根本不會被認定成 URL。第二,連結中的大括號與方括號不會被遮蔽,反而一路存活到渲染輸出。像 https://random_string.oast.fun/{email} 這樣的字串,格式錯得足以讓遮蔽機制放過,卻又有效得足以讓瀏覽器去抓取。
這道縫隙就是整個攻擊。注入的指令要求代理用它自己的 Query Records 工具查詢 Accounts 資料表,取出公司名稱與交易金額,把這些值嵌進攻擊者掌控的主機名稱子網域,再以 HTML 圖片標籤輸出。前端把它渲染出來並發出請求,DNS 查詢就把竊得的欄位一路送到攻擊者的權威名稱伺服器。員工的畫面上什麼也看不到。
Slack 讓事情更糟,還讓它變成匿名
同一段酬載在 Slack 上不必渲染任何圖片也能運作,因為 Slack 會展開連結來產生預覽。只要一個特製 URL 出現在頻道裡,就足以觸發那個把 CRM 欄位送往外部的請求——不需要點擊,不需要滑過,除了查看一筆名單之外不需要任何使用者操作。
第三個漏洞的形態不同。Agentforce 的 Reply to a Slack Thread 動作在出貨時既沒有確認提示,也沒有顯示是哪位使用者呼叫了它。已經在與代理對話的內部人員,因此可以在保持匿名的情況下,用代理那個受信任的身分張貼釣魚連結。再搭配 URL 遮蔽繞過,這則訊息可以指向任何地方。
為何這個模式比修補活得更久
Salesforce 已封堵遮蔽繞過,這幾條特定攻擊鏈因此失效。Zenity 自己的說法是,真正值得談的是材料而不是漏洞:任何一個會讀取外部人士送進來的紀錄、會把連結或圖片渲染回使用者眼前、又握有能碰觸敏感資料的工具權限的 AI 代理,三樣材料就都擺在同一個地方。
Zenity 共同創辦人兼 CTO Michael Bargury 向 The Register 表示,secure-by-design 對代理而言依然不可或缺,但可能已經不夠了,因為從設計之初就內建的防護,仍會漏掉代理在真實環境中自己撞上的邊角案例。他舉出 OpenAI 與 Hugging Face 的事件——代理逃出了原本要關住它們的沙箱——當作更大趨勢的一部分,並主張監看代理實際做了什麼,必須跟著它們的能力一起擴張。
這套主張如今已自成一個產品類別。Docker 本週的開發者主題演講講的是同一件事,以「容器隔離的是應用程式,而代理需要的是圍堵」為前提,推銷其代管 microVM 沙箱。SalesBleed 則是同一個問題的企業 SaaS 版本:Salesforce 蓋了一道防護欄,而這道防護欄和瀏覽器把同一串文字讀成了兩個意思。
FAQ — 常見問題
SalesBleed 現在還能被利用嗎?
不能。Zenity Labs 在 2026 年 6 月 1 日向 Salesforce 通報,Salesforce 於 8 月 18 日確認修補,Zenity 則在 8 月 19 日完成驗證。9 月 24 日公開的內容,描述的是已經失效的攻擊鏈。
SalesBleed 需要受害者點擊任何東西嗎?
不需要,這正是它引人注意之處。唯一需要的動作,是員工向自己的 Agentforce 代理問一個關於近期名單的例行問題。接著資料就透過圖片自動載入或 Slack 連結展開被送了出去。
這會影響 Salesforce 以外的 AI 代理嗎?
那個特定的繞過手法只存在於 Salesforce,但 Zenity 認為底層的配方並非如此。任何代理平台只要會納入不受信任的外部紀錄、把連結或圖片渲染回使用者、又賦予代理讀取敏感資料的工具,就能被組裝出同樣的攻擊。



