SalesBleed 复盘:一条公开表单如何零点击掏空你的 CRM

SalesBleed 复盘:一条公开表单如何零点击掏空你的 CRM

Author: tengdy | Create: 2026-10-01 09:16:28 | Update: 2026-10-01 09:16:28 | 分类:智能体与 Harness

SalesforceAgent安全Agentforce提示注入Slack

Zenity Labs 9 月 24 日披露了 Salesforce Agentforce 的三个漏洞,代号 SalesBleed:攻击者不登录、不点击、不接触目标租户,就能让企业的 AI agent 主动把 CRM 数据送出门。Salesforce 已于 8 月 19 日修复全部三个漏洞,但攻击模式的通用性让它值得每个做 agent 的团队复盘。

攻击链拆解

  1. 投放:攻击者通过公开的 Web-to-Lead 表单提交一条销售线索,正文里藏着间接提示注入指令。它混进 CRM,看起来和普通线索无异。
  2. 潜伏与触发:某天员工例行问 Agentforce「帮我看看最新的 leads」,agent 处理到这条被污染的记录,注入指令接管——用 Query Records 工具查询 Accounts 表,取出公司名和交易额。
  3. 外泄:agent 把数据编码进攻击者控制的子域名,生成一个 HTML image 标签写在回复里。聊天界面渲染图片标签,DNS 解析本身就把数据带出了门。员工看到的是一份正常的 leads 摘要。

Salesforce 本来有 Trusted URLs 白名单来拦这类外泄,但 Zenity 找到两个缺口:白名单不认识部分新顶级域名(.fun 直接漏过),且 URL 解析规则与渲染器不一致,{}、[] 等字符让「过滤器认为非法、浏览器认为合法」的字符串穿墙而过。

第二条通道更隐蔽:Slack 的 link preview 会自动抓取链接生成预览,agent 只要在回复里放一个精心构造的链接,Slack 自己的服务器就替攻击者把 CRM 数据带走了——你的 DNS 过滤和代理日志完全看不到。第三条则是把 agent 变成钓鱼工具:Reply to a Slack Thread 动作无确认、无发起人归属,注入后可以用企业官方 bot 的可信身份在内网发钓鱼消息。

这不是 Salesforce 的问题,是结构问题

SalesBleed 完整复现了研究者所说的 lethal trifecta(致命三角):访问私有数据 + 暴露于不可信内容 + 具备对外通信能力。三者齐备,提示注入就能把 agent 的能力反过来对付你。Meta 给出的 Rule of Two 原则值得贴在墙上:无人工监督的 agent,最多同时具备三项能力中的两项。

客服 agent 读工单、查订单库、发邮件;编码 agent 读 issue、碰代码库、提 commit;HR agent 读简历、查员工记录、排面试——大部分在产的企业 agent 都同时具备三项。

给你的行动清单

  • 用 Rule of Two 审计每个 agent:私有数据访问、不可信输入、外发通道,砍掉至少一条腿。
  • 最小权限:查 leads 的 agent 不应该能读整张 Accounts 表——SalesBleed 里越界的正是默认配置的 General CRM subagent。
  • 外发链接一律走重写/确认,不要信任输出侧过滤;注意 unfurler、preview 渲染器这些「代理外泄面」。
  • 部署后监控 agent 实际行为——Zenity CTO 的原话:「设计时审查挡不住真实世界的边缘情况,生产监控是最后防线」。
  • 用 Agentforce 的确认 6-9 月被 lead 触发的 agent 活动,核对你的 Trusted URLs 配置。

一个耐人寻味的细节:SalesBleed 没有 CVE 编号。按传统漏扫思路,你永远不知道它存在过。

来源:Zenity Labs、SecurityWeek、beri.net

评论(0)

暂无评论,来抢沙发~


关于本站 · RSS

浙ICP备2025156991号浙公网安备33010802013816号 浙公网安备33010802013816号 © 2026 智能体工场 - [从善如登] All rights reserved.