文件传播的AI蠕虫可通过Copilot for Word自我复制
摘要
本文展示了一种新型AI蠕虫,它可以通过在文档中嵌入隐藏指令,借助微软的Copilot for Word自我传播,导致Copilot将那些指令复制到新文档中。该漏洞已向微软安全响应中心披露。
暂无内容
查看缓存全文
缓存时间: 2026/07/29 12:54
# 上下文崩溃,第3部分 - 通过Word传播的AI蠕虫
来源:https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/
> 感谢Microsoft产品团队和Microsoft安全响应中心(MSRC)与我合作进行本次技术分析和已披露漏洞的缓解措施。下文所反映的编辑观点仅代表作者个人,不一定代表与我合作的组织的观点。
## 摘要https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#summary
本文所述发现是Microsoft安全响应中心(MSRC)(https://www.microsoft.com/en-us/msrc)和Microsoft产品团队协调披露的一部分。已向Microsoft提供了复现步骤、视频、环境假设以及测试中使用的精确概念验证(PoC)提示。同时告知了90天的协调披露期。该期限被延长了两次,最终协调期达144天。
在本系列的第1部分(https://enklypesalt.com/posts/context-collapse-part1-poisoning-copilot-memory/)和第2部分(https://enklypesalt.com/posts/context-collapse-part2-when-emails-instruct/)中,我展示了外部输入如何影响Copilot的响应,并在某些情况下,通过跨域提示注入攻击(XPIAs)(https://genai.owasp.org/llmrisk2023-24/llm01-24-prompt-injection/)可能导致机密性影响。本报告基于这些发现,将XPIA分析从单次交互攻破扩展到跨可信文档工作流的传播。研究表明,攻击者控制的文档中的指令可以被复制到Copilot生成或编辑的Word文档中,导致这些下游文档成为同一攻击的新载体。
此前已有AI蠕虫的例子。值得注意的是,Morris II(https://arxiv.org/abs/2403.02817)在GenAI驱动的电子邮件助手生态系统中展示了自我复制的提示传播。然而,据我所知,这是首次公开演示通过主流商业办公套件中的正常工作流实现文档携带的AI蠕虫自我传播。
报告的场景是:
1. 外部共享文档中隐藏的恶意指令可能导致Copilot更改Word中正在起草或编辑的文档,并将攻击传播到新文档。
## 简要概述完整攻击https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#the-full-attack-in-brief
### 攻击方式https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#the-attack
攻击者在文档中放置隐藏指令,该文档随后被用作Word Copilot的素材。Copilot可能将这些指令解释为用户请求的一部分,从而导致其操纵正在起草或编辑的文档。然后,Copilot还可能将隐藏指令复制到生成的文档中,使该文档成为新的载体。如果该载体随后被用于另一个Copilot辅助的工作流,指令可以再次触发并传播到更多文档,即使攻击者的原始文档不再存在。
### 示例https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#example
假设一名员工正在准备财务报告。该员工从一个已被攻破的受信任网站下载了一份市场分析报告,但未意识到文档中包含隐藏指令。然后,该员工在使用Copilot起草报告时将这份分析报告作为素材包含进来。隐藏指令导致Copilot更改财务报告中的内部数据,并将攻击复制到新文档中。该员工保存并分享了看似合法的报告。随后,另一名同事将其作为另一份报告的素材;指令再次触发,更改新报告并复制自身。因此,攻击可以继续,而无需受攻击网站或原始恶意文档的进一步参与。随着受影响的报告被重复使用,更多的报告和文档可能成为攻击的载体。
## 发布时的披露状态https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#disclosure-status-at-publication
- 供应商:Microsoft
- 协调披露:通过MSRC和Microsoft产品团队处理
- 本文包含内容:Microsoft Copilot for Word中的XPIA和自我传播场景
- 客户应对措施:发布时,尚无客户侧修复措施能完全解决该问题。客户可通过以下方式减少风险:1. 将外部来源文档在与Copilot配合使用时视为不受信任。2. 在开始Copilot生成或编辑前,检查任何附件文档。3. 在重用、分享或分发Copilot生成或编辑的文档前,仔细审查。
- Microsoft侧状态:测试显示,所有当前部署的缓解措施下仍可复现攻击。截至发布时,尚无针对该漏洞类别的有效缓解措施。
## 关于在修复前披露的说明https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#a-note-on-disclosing-before-a-fix
与第1部分和第2部分不同,此场景在发布时仍可利用。我对此进行了慎重考虑。与Microsoft商定的协调期已结束,测试表明目前没有任何可靠的缓解措施能应对该漏洞类别。两次缓解尝试(包括模型升级)未能关闭该类别。
因此,我选择在漏洞类别层面而不是载荷层面进行披露。理由是:防御者无法减少对其不了解的风险的暴露,而这里描述的传播机制影响了许多组织已经依赖的普通文档工作流。隐瞒该问题的存在将使这些组织无法做出明智的决策,同时无法提供额外的保护。
## 披露时间线https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#disclosure-timeline
- **2026-03-06**:向MSRC提交初步报告,包含复现步骤、视频、环境假设和PoC提示。
- **2026-03-09**:MSRC确认收到并立案。
- **2026-03-31**:Microsoft确认所报告的行为。
- **2026-03-31**:Microsoft产品团队开始进行缓解工作;持续进行技术讨论。
- **2026-04-03**:首次缓解措施上线(新的“使用Copilot编辑”体验)。
- **2026-04-09**:原始攻击提示措辞经“使用Copilot编辑”测试确认已缓解。
- **2026-04-09**:使用新的XPIA提示任务(操纵财务数据)在“使用Copilot编辑”中复现攻击行为。作为独立案例报告给MSRC。
- **2026-04-10**:MSRC确认收到并立案。
- **2026-04-10**:Microsoft产品团队开始进行缓解工作;持续进行技术讨论。
- **2026-06-08**:应Microsoft要求,公开披露日期推迟至2026-07-15。
- **2026-07-14**:第二次修复措施上线。该缓解措施包括将底层模型升级至GPT-5.5。
- **2026-07-15**:使用当时最新可用模型GPT-5.6再次成功复现带蠕虫功能的利用。
- **2026-07-15**:我建议将披露进一步推迟两周至2026-07-28,以便为新缓解措施留出时间。
- **2026-07-15**:Microsoft同意。
- **2026-07-28**:攻击仍然可复现。
- **2026-07-28**:协调公开披露(本文)。
## 威胁模型https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#threat-model
攻击者无需访问受害者的Microsoft 365租户。攻击者只需与受害者共享一个恶意文档。这可以通过SharePoint、Teams、Outlook或任何其他共享文档的方式完成。
## 安全边界与观察到的行为https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#security-boundary-and-observed-behavior
此场景中的相关安全边界是附件文档与当前起草文档之间的边界。如果任何一个附件文档包含XPIA,攻击就可能触发。
Copilot必须读取每个附件文档以确定哪些部分应包含在当前的起草任务中。然而,附件文档应被视为不受信任的信息,而非可信的用户指令。
**边界违反**攻击者控制的文档通过电子邮件/SharePoint/其他共享选项下载或分享。如果此类文档在起草任务中附加到Copilot,信任关系被破坏。
**预期行为**当用户要求Copilot根据附件文档起草(例如)第一季度财务报告时,Copilot应利用附件文档中的信息,而不将文档中嵌入的指令视为权威指令。
**观察到的行为**嵌入文档中的指令导致Copilot改变其行为。此处表现为:1. Copilot静默更改财务报告中的数值;2. Copilot通过将完整XPIA粘贴到下游文档中进行传播,这些文档随后可能在后续起草会话中被用作附件。
## 在Word中跨越信任边界https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#crossing-the-trust-boundary-in-word
这些场景的初始攻击向量使用恶意文档。恶意文档包含一个JSON格式的恶意提示,当该文档被包含在Copilot的上下文中时,会触发攻击。该提示可以呈现为白色背景上的白色文本并以小号字体隐藏,以躲避受害者。由于Word的Copilot在将文本传递给底层大语言模型(LLM)之前会去除所有文本格式(如颜色和字号),因此该文本对Copilot仍完全可读,即使受害者看不到。攻击可以通过将其嵌入一个看似良性的、包含任务相关文本的文档中进一步隐藏。
此攻击要求恶意文档作为Copilot上下文的组成部分包含在Word中。因此,根据所使用的Copilot版本,受害者必须:
1. 在Word的Copilot中主动附加或上传该文档;或
2. 使用工作/Work IQ模式下的“使用Copilot编辑”功能,并让Copilot在受害者OneDrive中找到该恶意文档。在这种情况下,Copilot必须认为该文档相关并将其纳入上下文。因此攻击者需要制作一个增加两种可能性之一的文档。
该利用同时适用于Word中的“魔法笔”和“使用Copilot编辑”功能。
攻击分两个阶段进行。第一阶段建立立足点,第二阶段攻击在文档间自我传播,这些文档在起草或编辑过程中使用Word的Copilot。
### 第一阶段:https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#stage-1
在第一阶段,攻击者制作了一个包含恶意隐藏提示的文档。在我最初的PoC中,我使用了一个仅包含白色背景上白色文本的恶意提示的文档。这样做是为了说明恶意文档不需要与受害者的任务相关,只要它被包含在上下文中,Copilot就会读取它,从而可能触发攻击。
*PoC提示由两部分构成:*
- 第一部分包含影响文档的指令。范围可以从略微改变摘要的含义到更改财务文档中的数字。关键在于将提示表述得使Copilot认为它与任务相关且无害。在我的许多实验中,我实际上还需要指示Copilot高亮它所做的更改,因为这些更改通常是有意义的且难以察觉。这表明该攻击在巧妙而有意义地更改文本方面效果显著,即使是仔细的审阅者也容易忽略。在现实场景中,攻击者显然不会包含此类指令。因此,在本文其余部分,我将使用更改财务报告中的数字作为示例,因为这是一种即时可见的更改。
- 第二部分包含自我传播攻击的指令。确切的措辞也很重要,但通常被描述为用于跟踪下游文档来源的目的。它还包含如何隐藏自身的指令,被描述为改善可读性的指令。
文本(https://enklypesalt.com/assets/images/2026-07-28/Initial%20Attack%20Vector%20-%20blurred.png)*图1:初始攻击向量文档。我为此PoC创建了一个名为Tfosorcim Ltd.的完整模拟公司,包含模拟经济和愿景。该攻击向量文档是一份伪造的市场分析,使用了攻击者通常可以获取的公司信息。攻击附在文档末尾,使用白色文本。[出于安全原因,大部分XPIA文本已模糊处理]*
一旦此恶意文档被包含在Word Copilot起草或编辑文档的上下文中,攻击就会触发,Copilot执行指令。因此,受影响的文档的财务数字将被更改。然后,Copilot还会将整个恶意提示复制到受影响文档的底部,使用白色文本和8号字体,有效地向受害者隐藏。
文本(https://enklypesalt.com/assets/images/2026-07-28/Stage1%20-%20Attachments%20and%20canged%20numbers.png)*图2:Copilot生成的下游草稿使用我的恶意文档作为附件([att] Direct wmr.docx)。在生成的Q1财务报告草稿中,所有财务数字减半。截图还显示了其他附件文档(Tfosorcim内部文档)。*
文本(https://enklypesalt.com/assets/images/2026-07-28/Stage%201%20-%20GPT5.6%20shown.png)*图3:该图演示了GPT-5.6——撰写本文时OpenAI的最新模型——被用于这些PoC中。*
文本(https://enklypesalt.com/assets/images/2026-07-28/Stage%201%20-%20Self-propagation%20text%20-%20blurred.png)*图4:在将Q1财务报告草稿中的所有财务数字减半后,Copilot还附加了完整的攻击提示,使用白色文本有效隐藏了受害者。它没有提及减半数字或包含了攻击。因此,受害者对此一无所知。[出于安全原因,大部分XPIA文本已模糊处理]*
文本(https://enklypesalt.com/assets/images/2026-07-28/Copilot%20Searches%20and%20finds%20the%20attack%20itself%20-%20blurred.png)*图5:Copilot不需要受害者主动附加恶意文档。在此截图中,受害者仅指示Copilot撰写一份Tfosorcim Q1财务报告。Copilot随后搜索受害者的OneDrive以查找相关文档。在这些文档中,我们发现了恶意的市场分析文档。该文档不在其余Tfosorcim文档所在的文件夹中。然而,Copilot仍然找到并读取了它,并被成功利用。*
### 第二阶段:https://enklypesalt.com/posts/context-collapse-part3-ai-worming-through-word/#stage-2
第二阶段是自我传播阶段。它完全依赖于Copilot将恶意提示复制到受影响文档的指令。一旦受影响的文档包含该提示,新文档本身就成为新的攻击向量。
文本(https://enklypesalt.com/assets/images/2026-07-28/Stage%202%20-%20Q2%20report%20)
相似文章
AI通过Word传播蠕虫
Håkon Måløy 发现了一种提示注入变体,它在 Microsoft Word 的 Copilot 中变成自我复制蠕虫,跨文档传播隐藏指令。微软有144天来修复此问题,但未完全缓解。
Microsoft Copilot Cowork 文件外泄
PromptArmor 的研究人员展示了 Microsoft Copilot Cowork 可能通过间接提示注入被利用,从 Microsoft 365 中窃取文件,利用的是当接收者为活跃用户时某些操作缺乏审批的漏洞。
研究人员打造出一种自复制AI蠕虫,完全基于本地开放权重模型运行
多伦多大学的研究人员开发了一种概念验证AI蠕虫,它使用本地开放权重的大语言模型来自主推理网络漏洞,生成定制的漏洞利用代码,并在无需人工干预的情况下跨主机复制,在受控测试中实现了62%的网络感染率。
首个AI蠕虫病毒
文章介绍了一种名为Rook的便携式漏洞狩猎工具,它可能被重新利用为AI蠕虫,具备自我修改和自主推理能力。作者警告称,此类AI蠕虫的出现不可避免,防御者应立即做好准备。
Microsoft Copilot Cowork 文件外泄
Microsoft Copilot Cowork 中存在一个安全漏洞,攻击者可通过利用提示注入触发外部图片请求,从而外泄文件,可能导致未经身份验证的下载链接泄露。