FlawOpen

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]

核心概念与专有名词

间接提示注入
嵌入在 AI 要检查的内容中的指令,例如邮件,而非用户直接输入的指令。[1], [5]
智能体运行环境
智能体可使用的进程和工具。其权限和隔离方式决定模型影响的操作会造成什么影响。[1], [6]
执行前强制控制
在代码运行或工具调用前阻止操作的控制措施。事后发出的警告无法阻止执行。[1], [6]
CWE-94(编辑映射)
对代码生成或执行控制不当。FlawOpen 将其作为不可信内容转为代码这一演示边界的概念映射;Salt Labs 未分配 CWE 或 CVE。[4], [1]

框架映射

攻击执行流程分解

步骤 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);
}

工程与系统安全加固清单

参考来源

← AI Security Directory →