# Salt Labs 用一封邮件劫持 Manus AI 代理：把提示注入编码为 JSFuck

> Salt Labs 于 2026 年 10 月 1 日报告，一封经过混淆的邮件让 Manus 代理运行代码并打开反向 shell，防护机制直到代码执行之后才触发。该漏洞已修复。

FireAI Security & Research Team (HisnLabs) · Published 2026-10-04
Canonical: https://hisnlabs.com/zh/news/manus-ai-agent-hijacked-single-email-jsfuck-salt-labs

Salt Labs 的研究人员于 2026 年 10 月 1 日发布了一份说明，介绍他们如何绕过 Manus AI 代理的提示注入防护，并通过一封邮件实现代码执行 [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。SC Media 援引 TechRadar 也报道了这项研究，并指出这一具体漏洞此后已通过漏洞赏金计划得到修补 [[2]](https://www.scworld.com/brief/researchers-bypass-ai-agent-protections-with-javascript-obfuscation)。这一案例与把 AI 代理连接到邮箱和其他帐户的 Mac 用户相关。

## 背景

提示注入是把指令放进 AI 代理会读取的内容中，使代理把它们当作命令执行。Salt Labs 选择 Gmail 集成作为目标，因为电子邮件是许多帐户的主要身份提供方。据该说明介绍，代理在一个云端沙盒中处理邮件，使用基于模型上下文协议（MCP）的工具和用户的 OAuth 令牌 [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。

## 研究内容

研究人员报告称，普通的 shell 命令注入被平台的防护机制检测并拦截，Base64 编码的变体也被检测出来。随后他们把载荷编码为 JSFuck，这是一种只用极小字符集编写 JavaScript 的特殊方式，并在邮件中要求代理用 Node.js 对其解码。代理调用了 Node.js 运行时，在其服务器端环境中执行了任意 JavaScript [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。

之后，载荷被扩展为在沙盒内运行系统命令，并建立一个连回攻击者基础设施的反向 shell。由此，他们获取了 Gmail OAuth 令牌、工具接口以及已连接服务的凭据，并可能访问 Google Drive 和 GitHub 等服务 [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。核心发现是一个时间差：防护机制检测到了攻击，但那是在“代码已经运行之后” [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。SC Media 将其中的教训概括为：检查提示是必要的，但并不充分，防护必须延伸到代理跨工具、API 和系统所采取的行动 [[2]](https://www.scworld.com/brief/researchers-bypass-ai-agent-protections-with-javascript-obfuscation)。

该说明表示，这一具体漏洞已通过 Meta 的漏洞赏金计划提交，现已解决，不再可被利用。说明没有给出披露时间线 [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。

> FireAI 是 HisnLabs 开发的 macOS 本机防火墙，其中的代理配置文件（Agent profile）会学习 AI 代理通常连接到哪里，并标记首次出现的目标地址。可免费试用 17 天。 [Download FireAI for Mac](https://hisnlabs.com/en/download)

## 对 Mac 用户的影响

在这一案例中，代码是在厂商的云端沙盒中运行的，而不是在 Mac 上，因此暴露的是代理所持有的令牌和已连接的帐户 [[1]](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)。其中的普遍道理同样适用于本地代理：代理读取的内容可能携带指令，而只检查提示的防御可能为时已晚。

## 建议

1. 只把 AI 代理连接到它所需要的帐户，在服务提供只读权限时优先使用只读权限。
2. 定期检查每个代理已连接的服务和令牌，撤销不再使用的部分。
3. 把代理读取的任何邮件、网页或文档都视为不可信的输入。
4. 优先选择在执行命令、修改文件和访问新网络目标地址时需要批准的代理。
5. 留意 Mac 上的代理访问了哪些网络目标地址，并调查新出现的目标地址。

## 与 FireAI 的关系

FireAI 的[代理配置文件（Agent profile）](https://hisnlabs.com/zh/docs/agent-profile)会识别 Mac 上的 AI 代理，学习每个代理通常连接到哪里，并仅凭主机名和字节数，把首次出现的目标地址或上传激增标记出来供用户审阅。在更严格的模式下，它会拦截新的目标地址，直到用户允许为止。

FireAI 不在厂商的云端运行，因此无法看到或阻止 Manus 沙盒内部发生的事情。它不读取邮件或提示，不判断一条指令是否属于注入，也不读取加密连接的内部内容。它作用于在 Mac 上运行的代理的网络一侧。

> 一个被指示把数据发往新地方的本地代理，必须打开一个连接。FireAI 会在访问没有规则的目标地址之前先行询问，并保留历史记录。免费试用 17 天。 [Download FireAI for Mac](https://hisnlabs.com/en/download)

## 局限

技术细节出自研究人员本人，本文通过 Security Boulevard 的转载阅读，未进行独立复现。这些来源没有报道研究人员之外的任何人利用过该漏洞，也没有给出修复日期。SC Media 指出，除 JSFuck 之外，很可能还会出现其他巧妙的绕过方式 [[2]](https://www.scworld.com/brief/researchers-bypass-ai-agent-protections-with-javascript-obfuscation)。

免费试用 [HisnLabs 的 FireAI](https://hisnlabs.com/zh/download) 17 天。

## Sources

- [Salt Labs via Security Boulevard, 1 October 2026: How We Hijacked an AI Agent With a Single Email](https://securityboulevard.com/2026/10/how-we-hijacked-an-ai-agent-with-a-single-email/)
- [SC Media, 3 October 2026: Researchers bypass AI agent protections with JavaScript obfuscation](https://www.scworld.com/brief/researchers-bypass-ai-agent-protections-with-javascript-obfuscation)
