M365 Copilot 严重漏洞泄露 2FA 代码
Ars Technica AI··作者 Dan Goodin
关键信息
研究人员使用了一种他们称为 Parameter-to-Prompt Injection 的技术,把恶意指令放进 URL 的查询参数 q 中,而不只是放在电子邮件正文等不可信内容里。文章还指出,Copilot 的防护措施会阻止提交表单或访问未批准网站等动作,但这个利用链仍然成功越过了这些防线。
资讯摘要
微软在上周二修补了 M365 Copilot 中一个严重漏洞,因为研究人员发现可以滥用这个助手对电子邮件内容的访问权限。到周一时,研究人员公开说明了他们的概念验证利用方式,称其可以从 Copilot 被允许读取的消息中提取 2FA 代码和其他敏感信息。文章指出,这类问题背后有一个更深层的根源:大型语言模型无法可靠地区分真正的用户指令和隐藏在第三方内容中的恶意指令。正因为如此,微软和其他厂商只能依赖多层防护措施,而不是一个完全可靠的技术边界。
在这个案例中,一道防线试图阻止 Copilot 发送邮件、提交表单或执行类似的数据外泄动作,另一道防线则把输出包裹在代码块中,并限制 Copilot 可访问的网站。Varonis 表示,他们的利用链名为 SearchLeak,能够跳过这些保护。第一步是 Parameter-to-Prompt Injection,也就是把恶意命令藏在 URL 的 q 查询参数里,而不是藏在被总结的内容中。最终,这条路径形成了一个严重的数据泄露通道,可能暴露 MFA 代码、邮件、会议细节以及其他私有组织信息。

资讯正文
上周二,微软修补了其 M365 Copilot AI 平台中的一个漏洞,并将其评级为最高级别的严重漏洞。到了周一,发现并向微软报告该漏洞的研究人员披露了他们的概念验证利用方式,说明这种漏洞如何从 Copilot 可访问的电子邮件中提取 2FA 代码以及其他敏感数据。
微软和其他大语言模型(LLM)提供商一直无法阻止其产品在面对恶意请求时泄露数据。根本原因在于:AI 机器人无法区分用户直接提供的指令与被偷偷塞进第三方内容中的指令,而这些第三方内容正是模型在总结、起草回复或代表用户执行其他操作时所处理的对象。由于无法守住这一关键边界,微软及其同行只能建立复杂且临时拼凑的防护栏,试图控制这种无法根治的轻信所带来的后果。
跨越防护栏
Copilot 和大多数其他 LLM 内置的一道防护栏,是阻止它们提交网页表单、发送电子邮件以及执行类似操作,因为这些操作可被用于从用户那里外传数据。为绕过这一限制,LLM 黑客转而利用标记语言;这种语言在许多方面允许用户给文本添加标题、列表和链接等格式元素,而无需使用 HTML 标签。另一种变通办法,是把敏感数据包裹在 <img> 和 <form> 之类的 HTML 标签中。无论采用哪种方式,显示这些数据的网页请求都会发往攻击者的 Web 服务器,机密信息则会被记录在日志中。
微软的一道防护栏会把 Copilot 的输出包裹在 <code> 块中,从而让浏览器把它当作纯文本处理。另一道防护栏则限制 Copilot 在未经明确批准的情况下可以访问的网站。虽然 Copilot 被全面授权向微软域名发送请求,但这些防护栏会限制其向不受信任网站发起请求。
安全公司 Varonis 设计了一条利用链,成功越过了这些防护栏。第一个环节是研究人员所称的 Parameter-to-Prompt Injection。在这里,参数指的是 URL 中的 q,它用于标记已包含的查询内容。Parameter-to-Prompt Injection 与 prompt injection 关系密切。二者的区别在于,恶意命令位于查询参数中,而不是电子邮件或其他不受信任内容里。
来源与参考
收录于 2026-06-17