flawopen.com/AI Security/microsoft-365-copilot-echoleak-prompt-injection-may-2025
●
CVE-2025-32711 · CVSS 9.3 · 严重
安全研究 · FlawOpen
EchoLeak:Copilot 提示注入(CVE-2025-32711)
CVE-2025-32711 展示了构造邮件如何在无需点击时向 Copilot 注入提示。微软已在服务端修复,客户无需操作。[2], [3]
💡 通俗易懂的原理解析 (ELI5)
想象一个助手负责总结邮件,而预览系统会自动加载回答中的图片。恶意邮件诱使助手在图片引用中放入私密信息的引用;预览系统会在无人点击的情况下跟随该引用。EchoLeak 跨越了不可信邮件、助手回答和自动外部请求之间的边界。防护措施是禁止不可信内容授权请求,并通过独立策略检查每个预览请求。[3], [4]
核心概念与专有名词
CWE-74:注入CWE-74:注入。Microsoft 的 CVE 记录列出此分类和 CVSS 3.1 9.3 Critical。NVD 单独给出其 7.5 High 评估;这是不同机构的评估,并非漏洞编号存在冲突。[2], [5]来源到出口路径- 从不可信内容、模型处理到动作或披露渠道的可审计路径。[3]
Microsoft 365 Copilot- 使用获准 Microsoft 365 上下文的 Microsoft 工作助手。[1]
最小权限- 仅向身份或工具授予完成当前任务所需的访问权限。[4]
框架映射
攻击执行流程分解
源代码对比:漏洞与安全实现
这是 FlawOpen 教学模型,不是 Microsoft 源代码或补丁。易受影响的分支模拟渲染器自动加载模型选定的引用。防御分支只接受由可信服务器端解析器创建的 ServerValidatedPreview,检查服务器控制的目标策略和非私密数据分类,并要求可信审批策略验证与具体回答和目标绑定的审批。这些是明确前提:Python 类型本身不会让值变得可信,因此生产环境必须由服务器控制的代码强制执行解析器和策略边界。代码不会发送网络请求,也不会复现 EchoLeak 的载荷或内部实现。 审批还会绑定到数据分类。[3], [4]
存在漏洞的实现
# 抽象风险模型:模拟自动预览决策;不会发送网络请求。
from dataclasses import dataclass
@dataclass(frozen=True)
class PreviewRequest:
response_id: str
destination_id: str
provenance: str
contains_private_data: bool
def vulnerable_preview_decision(request):
return True
加固后的安全修复
# 抽象风险模型:模拟自动预览决策;不会发送网络请求。
from dataclasses import dataclass
@dataclass(frozen=True)
class ServerValidatedPreview:
response_id: str
destination_id: str
provenance: str
data_classification: str
class ServerPolicy:
def destination_is_allowed(self, destination_id):
raise NotImplementedError
def verifies_exact_approval(self, approval, *, response_id, destination_id, data_classification):
raise NotImplementedError
# 前提:只有可信服务器代码可以创建此已验证值。
def authorize_preview(request: ServerValidatedPreview, approval, server_policy):
if request.provenance != 'trusted-catalog' or request.data_classification != 'public':
return False
if not server_policy.destination_is_allowed(request.destination_id):
return False
return server_policy.verifies_exact_approval(
approval, response_id=request.response_id, destination_id=request.destination_id,
data_classification=request.data_classification
)
工程与系统安全加固清单
- ✓添加渲染器集成测试,证明即使模型在回答中包含来自检索邮件的外部资源,该资源也不会自动加载。[4]
- ✓添加策略单元测试,证明没有服务器控制的目标 ID 和可信来源的资源会在预览服务获取它之前被拒绝。[4]
- ✓将任何例外审批绑定到不可变的回答 ID、目标 ID 和数据分类;测试修改任一字段都会使审批失效。[4]
- ✓记录回答 ID、资源 ID、来源类别、策略决定和目标类别;通过测试确认日志中不含原始邮件、提示词或回答中的私密内容。[4]
- ✓对于 EchoLeak,Microsoft 表示服务端修复已部署,客户无需操作。对于其他 AI 代理,请查看厂商公告,并落实最小权限、高风险操作审批和对抗性测试。[2], [1]
参考来源
- Microsoft Security Insider — AI application security considerations for organizations
- Microsoft Security Response Center — CVE-2025-32711
- AAAI case study — EchoLeak zero-click prompt-injection chain
- OWASP Top 10 for LLM Applications — Prompt Injection
- NVD — CVE-2025-32711 (NVD enrichment and CNA data)
- Aim Security / Aim Labs — original EchoLeak disclosure