flawopen.com/AI Security/manus-email-prompt-injection-agent-runtime-october-2026
●
FlawOpen 映射: CWE-94 · 编辑严重性评级: 高危
安全研究 · FlawOpen
Manus AI 智能体邮件提示注入:代码先于警告执行
Salt Labs 报告称,特制邮件可诱使 Manus 在提醒用户之前,于服务器端运行环境执行代码。研究人员表示已负责任地披露问题且漏洞已修复;目前没有 CVE,也没有报告真实受害者遭入侵。[1]
💡 通俗易懂的原理解析 (ELI5)
想象一名邮件分拣员先朗读信件并照着隐藏的指示行事,之后才询问主管这封信是否可信。警告来得太晚。安全边界必须从一开始就阻止不可信邮件文本变成可执行指令。即使信件看起来像普通工作内容,也必须把它当作数据,而不是授权来源。[1]
核心概念与专有名词
框架映射
- FlawOpen 对 MITRE CWE 的概念性映射;没有厂商或 CVE 记录将此弱点编号分配给本研究演示。 CWE-94
- OWASP GenAI 2025 — LLM01:2025 提示注入
- OWASP GenAI 2025 — LLM06:2025 过度代理权限
攻击执行流程分解
步骤 1
用户要求 Manus 检查邮件
Salt Labs 称,在受控测试中,只需让 Manus 检查收件箱;不需要用户再点击链接或窃取凭证。[1]
步骤 2
邮件提供不可信内容
邮件正文中夹带了指令。模型的分类或警告并不是处理这些数据时的安全边界。[1]
步骤 3
内容进入服务器端执行路径
Salt Labs 报告称,Manus 通过 Node.js 运行环境处理内容,并在显示警告和审批提示前执行了代码。具体内部实现未公开;这是研究者的叙述,不是源代码审计。[1]
步骤 4
执行环境拥有已连接服务的权限
Salt Labs 在受控测试中报告称,该环境能够访问与用户连接服务相关的令牌。潜在影响范围取决于该环境中的集成和权限。[1]
步骤 5
披露的问题已修复
Salt Labs 表示已通过 Meta 漏洞赏金计划报告问题,并称该具体技术已不可利用。这是研究演示,不是客户泄露事件;没有 CVE 或公开补丁差异。[1]
源代码对比:漏洞与安全实现
Salt Labs 未公开 Manus 的易受攻击源代码或厂商补丁差异。这些片段说明一般性的信任边界错误和防御架构,并非对产品的还原。不可信邮件应在没有执行能力的纯数据摘要路径中处理。独立的服务端策略必须在工具或运行环境执行操作之前,先授权确切操作。[1], [6]
存在漏洞的实现
// 不安全设计示意;不是 Manus 源代码。
async function inspectEmail(email: Email) {
return agent.process(email.body, { tools: [serverSideRuntime] });
}
加固后的安全修复
// 更安全边界示意;不是 Manus 的实现或补丁。
async function inspectEmail(email: Email, session: AuthenticatedSession) {
const summary = SummarySchema.parse(
await readOnlyModel.summarize({ content: email.body })
);
const proposal = ActionRequestSchema.parse(
await readOnlyModel.proposeAction({ summary })
);
if (!proposal) return summary;
const approval = await approvalStore.consumeExact({
actorId: session.userId,
action: proposal.action,
resourceId: proposal.resourceId
});
const permit = await serverPolicy.authorize({
actorId: session.userId,
action: proposal.action,
resourceId: proposal.resourceId,
approval
});
if (!permit.allowed) throw new Error("Action denied");
return narrowTools.execute(permit.approvedAction);
}
工程与系统安全加固清单
- ✓将邮件正文、附件、引用的邮件链和检索到的网页内容都视为不可信数据,即使模型将其判断为无害或恶意。[1], [5]
- ✓不要让邮件摘要流程调用通用代码运行环境。将只读分析与工具执行分开,并使用范围狭窄、类型明确的工具。[1], [6]
- ✓在服务端策略中于执行前进行授权;将审批绑定到已认证用户、准确操作、目标资源和较短有效期。[6]
- ✓确保运行环境真正隔离:不要向处理内容的运行环境暴露 OAuth 令牌或权限过宽的连接器凭证。[1], [6]
- ✓若审批、审计或策略评估不可用,则默认拒绝。执行后才显示的警告不属于预防控制。[6]
- ✓保留工具调用和运行环境审计记录,并测试恶意邮件内容无法在授权前触发工具或执行路径。[1], [6]
- ✓Salt Labs 表示披露的问题已修复。请核实 Manus 当前安全说明;不要推断所有智能体平台都存在相同缺陷。[1]