Skip to content

企业 AI 参数注入与可信出口数据外泄 ​

摘要 ​

Data Tomb Raider 汇总三条企业 AI 数据外泄链。RePrompt 利用 Microsoft Copilot 的可控输入;RovoBlast 把 Atlassian Rovo 的 rovoChatPrompt URL 参数交给 Research Agent;SearchLeak 则让 Microsoft 365 Copilot 的 /search/?q= 参数进入提示词,再借允许访问的 Bing 图片通道编码外传结果。演讲报告三项问题均已修复,其中 SearchLeak 分配为 CVE-2026-42824。

这些链的共同根因不是搜索或图片服务本身,而是应用把导航参数直接提升为指令,并允许模型从同一会话读取企业数据和构造外部资源请求。本站合并分析三项发现,以避免按产品重复描述同一种参数到提示词的信任转换。

共同模型:“进入—规避—逃逸” ​

作者用 Enter–Evade–Escape 概括三条链:

  1. 进入:攻击者可控的 URL 参数、搜索词或深链接被提升为提示词,而不是保持为普通导航数据。
  2. 规避:通过分阶段请求、不同语法或重复请求绕开模型与渲染器的拒绝条件。
  3. 逃逸:模型使用允许访问的外部通道,把内部检索结果带到攻击者可观察的位置。

这一模型与“致命三要素”一致:Agent 同时接触不可信输入、私有企业数据和外部通信能力。三项发现使用了不同产品入口,但最先失效的安全控制相同——应用没有验证“打开一个链接”是否等同于用户授权 Agent 执行一段指令。

研究代号参数入口可访问的私有数据演示中的出口
RePromptCopilot ?q=会话上下文、Agent 记忆和用户信息模型可生成的外部请求或后续动作
RovoBlastRovo rovoChatPromptConfluence、Jira、Bitbucket 等连接器数据多阶段检索与外部资源
SearchLeakMicrosoft 365 Search ?q=Microsoft 365 搜索结果Bing 图片服务代取外部 URL

RePrompt:个人 Copilot 的一键自动提交 ​

材料展示个人 Copilot 接受类似 copilot.microsoft.com/?q=hello 的链接。q 不只是填充搜索框;页面加载后会把内容自动提交为用户消息。攻击者因此可以把自然语言指令放入微软自己的域名,诱导已登录用户点击,而无需托管恶意文档。

作者把 RePrompt 拆为四个阶段:

  1. 让参数内容进入会话并被当作指令。
  2. 请求模型收集当前用户元数据、Agent 记忆或聊天上下文。
  3. 让输出进入一个可由攻击者观察的外部通信步骤。
  4. 使用重复请求或分阶段表达绕过护栏(Guardrail)。

公开幻灯片能够支持“参数被自动提交”和“形成多阶段数据流”这两个结论,但没有给出可独立复测的完整版本矩阵。本文不把“能读取某类上下文”外推为所有 Copilot 账户都能泄露同样数据。

RovoBlast:组织重定向并没有消除不可信提示词 ​

Atlassian Rovo 链接使用 home.atlassian.com/chat,并通过 rovoChatPathway=chat 和 rovoChatPrompt=<内容> 等参数预置会话。用户登录后,服务可以重定向到正确的组织标识;从使用体验看,这是正常深链接能力,从安全角度看,攻击者输入却因此抵达了已认证组织中的 Agent。

内置 Research Agent 扩大了检索范围 ​

Rovo 能调用内部 Research Agent 和连接器搜索 Confluence 页面、Jira 工单及 Bitbucket 内容。攻击者不必知道具体项目结构,只需让 Agent 自行查找符合某类描述的数据。演讲演示了以下受控场景:

  • 从 Confluence 找到内部文档内容。
  • 从 Jira 工单中提取项目或人员信息。
  • 通过连接器扩展到 Bitbucket 等关联服务。

“可访问所有组织数据”应理解为“可在当前用户和连接器授权范围内搜索”,不是绕过 Atlassian 自身的每一项对象权限。

分阶段请求与重复请求 ​

材料描述“双重请求(double request)”:第一次请求可能因敏感动作被拒绝,第二阶段则把同一目标包装成继续研究、格式转换或引用资源,模型可能分别批准每一步。RovoBlast 还可先生成中间结果,再让另一个内部 Agent 消费,来源与目的在 Agent 间传递时变得不清楚。

这与单句提示词注入不同。安全验证必须覆盖完整任务图,而不是只判断每一轮文字看起来是否危险。

SearchLeak:同源搜索页加受信任 Bing 出口 ​

SearchLeak 使用 Microsoft 365 搜索页面的 /search/?q= 参数。该参数进入 AI 搜索上下文后,模型可以查询当前用户可见的 Microsoft 365 内容。页面还会渲染模型生成的富文本或图片资源,由此形成从内部检索到浏览器网络请求的连接。

为什么内容安全策略没有阻断 ​

正常情况下,内容安全策略可以禁止页面请求任意攻击者域名。但 Bing 图片搜索属于受信任的微软域名,页面允许加载。Bing 的“按图片 URL 搜索”功能会在服务端取得调用者提供的图片地址;如果模型构造的 Bing URL 又嵌入攻击者控制地址和数据片段,实际网络链会变成:

text
Microsoft 365 页面
  -> 允许访问的 bing.com
  -> Bing 服务端请求攻击者端点
  -> 攻击者从请求路径观察编码片段

因此,允许域名控制只验证了第一跳,没有验证 Bing 代取的第二跳,也没有限制模型把私有数据放入路径。演讲还提到 HTML 渲染时序:在防护或拒绝结果完全生效前,外部资源可能已经开始加载。

CVE 与修复结论 ​

材料称 SearchLeak 获得 CVE-2026-42824,三项问题均已修复。本文只记录演讲披露状态;补丁是否覆盖所有区域、移动端、深链接和已有会话,需要根据厂商公告和实际租户继续验证。

为什么“同一厂商域名”不能继承信任 ​

SearchLeak 揭示了三种不同的信任属性:

  • bing.com 的 TLS 和域名身份可以是真的。
  • Bing 代取 URL 的功能也可以按设计正常工作。
  • 请求中携带的数据来源仍可能是企业私有上下文,目标仍可能由攻击者控制。

出口策略如果只维护域名允许列表,会把前两项真实性错误地解释为第三项数据流获得授权。正确的控制对象应是“哪个主体、因为什么任务、把哪类数据、发到哪个最终目的地”。

去武器化 PoC:本地深链接与双跳出口测试 ​

以下夹具使用不可解析域名和本地 Mock 渲染器,不复现真实产品链接:

text
GET /mock-search?q=DRY_RUN%3A%20return%20PUBLIC_FIXTURE

session.private_index = ["PRIVATE_FIXTURE_MUST_NOT_LEAVE"]
session.public_index = ["PUBLIC_FIXTURE"]
renderer.allowed_hosts = ["images.mock.invalid"]
renderer.network = RECORD_ONLY

Mock 模型返回一个外部图片引用时,出口代理不发起真实请求,只记录标准化后的最终目的地:

text
assert query_parameter_is_data_not_instruction()
assert private_index_was_not_searched_without_explicit_consent()
assert redirect_chain_is_resolved_before_policy_check()
assert recorded_request_contains_no_model_generated_path_data()
assert real_network_request_count == 0

第二组测试把任务拆成两轮:第一轮只检索,第二轮要求渲染。策略应把两轮合并为同一个数据流判断,不能因为每一轮单看都合理就批准最终外发。本站省略真实 Bing 路径、数据分块、编码方式和渲染竞态细节。

复现与验证时应记录什么 ​

  • 链接打开后参数是只填充界面,还是自动提交为用户消息。
  • 服务器端记录的消息角色、来源和是否有用户确认事件。
  • Agent 实际调用了哪些检索器、连接器和内部子 Agent。
  • 每条检索结果的对象权限与来源标签是否保留到最终回答。
  • HTML、Markdown、图片和重定向分别由浏览器还是服务端请求。
  • 出口代理看到的最终 IP、重定向链、查询参数和数据分类。
  • 首轮拒绝后,重复或分阶段请求是否继承原始风险状态。

防护措施与验证方法 ​

  • 查询参数、片段标识和深链接内容只能作为数据填充,不能直接生成已发送的用户消息;自动执行前必须有可验证的用户确认事件。
  • 服务器端采用固定任务类型和类型化参数,拒绝把任意自然语言参数拼接到系统或用户指令。
  • 内部检索、内容摘要和外部渲染分阶段授权;打开链接不能代表同意搜索企业数据,更不能代表同意外发。
  • 在 Agent 间传递逐字段来源、对象权限和原始请求主体;内部 Research Agent 的摘要不能自动获得更高信任等级。
  • 对 Bing 等允许域名解析完整重定向和代取目标,在连接前后都校验最终 IP、目标域和数据分类。
  • 富文本输出采用安全中间表示,图片和链接默认不自动加载;模型不得控制任意 URL 路径或查询串。
  • 对重复请求和多轮任务维护累计风险状态。首轮拒绝的敏感目标不能通过拆分成多个低风险步骤重新批准。

关键结果与实际影响 ​

研究说明,一个位于产品官方域名的链接也可能携带攻击者指令。若应用自动提交参数、Agent 可读取企业数据、渲染器又能对外通信,点击链接便可能完成从输入到外泄的整条路径。实际读取范围仍受当前用户和连接器权限限制;三项受控演示不能证明其他企业 AI 产品存在相同实现缺陷。

局限与待验证问题 ​

公开证据集中在演讲幻灯片,缺少各区域的完整版本矩阵、厂商补丁差异和独立复现。RePrompt、RovoBlast 与 SearchLeak 的入口和出口并不完全相同,本文只合并其共同机制,不把单一产品结果外推为行业发生率。后续应复测修复是否覆盖移动端、桌面端、重定向、既有会话、多轮请求和不同连接器。

参考链接 ​