Salt Labs 的研究人员于 2026 年 10 月 1 日发布了一份说明,介绍他们如何绕过 Manus AI 代理的提示注入防护,并通过一封邮件实现代码执行 [1]。SC Media 援引 TechRadar 也报道了这项研究,并指出这一具体漏洞此后已通过漏洞赏金计划得到修补 [2]。这一案例与把 AI 代理连接到邮箱和其他帐户的 Mac 用户相关。
背景
提示注入是把指令放进 AI 代理会读取的内容中,使代理把它们当作命令执行。Salt Labs 选择 Gmail 集成作为目标,因为电子邮件是许多帐户的主要身份提供方。据该说明介绍,代理在一个云端沙盒中处理邮件,使用基于模型上下文协议(MCP)的工具和用户的 OAuth 令牌 [1]。
研究内容
研究人员报告称,普通的 shell 命令注入被平台的防护机制检测并拦截,Base64 编码的变体也被检测出来。随后他们把载荷编码为 JSFuck,这是一种只用极小字符集编写 JavaScript 的特殊方式,并在邮件中要求代理用 Node.js 对其解码。代理调用了 Node.js 运行时,在其服务器端环境中执行了任意 JavaScript [1]。
之后,载荷被扩展为在沙盒内运行系统命令,并建立一个连回攻击者基础设施的反向 shell。由此,他们获取了 Gmail OAuth 令牌、工具接口以及已连接服务的凭据,并可能访问 Google Drive 和 GitHub 等服务 [1]。核心发现是一个时间差:防护机制检测到了攻击,但那是在“代码已经运行之后” [1]。SC Media 将其中的教训概括为:检查提示是必要的,但并不充分,防护必须延伸到代理跨工具、API 和系统所采取的行动 [2]。
该说明表示,这一具体漏洞已通过 Meta 的漏洞赏金计划提交,现已解决,不再可被利用。说明没有给出披露时间线 [1]。
对 Mac 用户的影响
在这一案例中,代码是在厂商的云端沙盒中运行的,而不是在 Mac 上,因此暴露的是代理所持有的令牌和已连接的帐户 [1]。其中的普遍道理同样适用于本地代理:代理读取的内容可能携带指令,而只检查提示的防御可能为时已晚。
建议
- 只把 AI 代理连接到它所需要的帐户,在服务提供只读权限时优先使用只读权限。
- 定期检查每个代理已连接的服务和令牌,撤销不再使用的部分。
- 把代理读取的任何邮件、网页或文档都视为不可信的输入。
- 优先选择在执行命令、修改文件和访问新网络目标地址时需要批准的代理。
- 留意 Mac 上的代理访问了哪些网络目标地址,并调查新出现的目标地址。
与 FireAI 的关系
FireAI 的代理配置文件(Agent profile)会识别 Mac 上的 AI 代理,学习每个代理通常连接到哪里,并仅凭主机名和字节数,把首次出现的目标地址或上传激增标记出来供用户审阅。在更严格的模式下,它会拦截新的目标地址,直到用户允许为止。
FireAI 不在厂商的云端运行,因此无法看到或阻止 Manus 沙盒内部发生的事情。它不读取邮件或提示,不判断一条指令是否属于注入,也不读取加密连接的内部内容。它作用于在 Mac 上运行的代理的网络一侧。
局限
技术细节出自研究人员本人,本文通过 Security Boulevard 的转载阅读,未进行独立复现。这些来源没有报道研究人员之外的任何人利用过该漏洞,也没有给出修复日期。SC Media 指出,除 JSFuck 之外,很可能还会出现其他巧妙的绕过方式 [2]。
免费试用 HisnLabs 的 FireAI 17 天。