DeepJack:Cursor 的 MCP 安装深链接中隐藏的参数导致代码执行
构造的 cursor:// 链接会安装攻击者控制的 MCP 服务器,其真实命令在对话框中被滚动到屏幕之外,单击一次即可实现无沙箱代码执行。
摘要 对 AI 编码智能体安全的关注大多集中在提示注入和 MCP 供应链上。Adversa AI 于 2026 年 7 月 15 日 发布的一份分析指向了一个更隐蔽的攻击面:Cursor 安装时注册的
cursor://URL 方案处理器。构造的深链接可以驱动 IDE 安装一个由攻击者控制的 MCP 服务器,并在受害者账户下执行无沙箱命令——只需一次点击和一次确认——因为安装对话框并不能可靠地显示它请求你批准的那条命令。研究人员将这一漏洞类别命名为 DeepJack。据报告,其底层的显示问题早在 2026 年 4 月 27 日 就已在内部被确认,并且在发布之时仍能在 Cursor 3.9.8 上复现。
这是什么?
Cursor 与大多数桌面编码工具一样,会注册一个自定义 URL 方案(cursor://),以便链接驱动 IDE:打开文件、发起 pull request 审查、安装 MCP 服务器。安装路由接受一个服务器名称和一段 base64 编码的配置,描述要运行的命令。该命令以开发者的全部权限执行——在它与开发者的文件、令牌和 shell 之间没有任何沙箱。
DeepJack 的核心观察是:本应保护这次安装的确认对话框,可以被诱导去隐藏用户正在批准的那部分内容。它建立在一个此前已公开披露的 Cursor 深链接缺陷之上(已在 Cursor 1.3 中修复),该缺陷的补救措施是显示命令参数。DeepJack 研究表明,如果对话框以用户无法阅读的方式呈现参数,仅仅显示它们并不足够。
工作原理
报告描述了同一弱点的两个变体。我们在概念层面加以概括;此处不复现任何可用的攻击载荷。
第一个是安装对话框中的渲染弱点。参数显示在一个单行文本框中。攻击者用一长串空白/控制字符填充可见部分,于是屏幕上只显示一个看似无害的令牌(例如一个计算器命令),而恶意的尾部——一个向外发送的 [REDACTED] 命令——则滚动到右边缘之外。用户读到无害的前缀便批准;Cursor 执行了完整的字符串。
第二个是通过嵌套深链接进行的信任洗白。第二个 cursor:// 安装 URI 被双重 URL 编码,并嵌入到一个看似例行的 pr-review 链接的 url 参数中。外层链接被当作一次代码审查请求解析一次,而嵌套参数从未被递归重新校验:安装 URI 因此以不透明字符串的形式通过,并在下游到达安装处理器。受害者以为自己点击的是”审查这个 PR”,而不是”安装一个服务器”。
去掉编码技巧,这本质上是通过自定义 URL 方案处理器进行的参数注入(CWE-88)——一个存在了数十年的桌面漏洞类别,其先例远早于 AI 工具。新的地方在于它落在了哪里。
为什么重要
被攻陷的终端是开发者的工作站:SSH 密钥、云凭证、源代码、活跃的会话令牌,以及一条通往 CI 和生产环境的直接路径。一个在媒体播放器中只是小麻烦的 URL 处理器漏洞,在这里却成为软件供应链中的一个立足点。
任何单个链接得手的概率并不高——它仍然需要一次点击和一次批准。问题在于不对称性:低概率,却近乎全面的影响范围。而且这个攻击面在很大程度上无人监控。同一份报告中的跨智能体调查显示,大多数主流编码工具(Cursor、VS Code、Windsurf、Warp 等)都注册了 URL 处理器,且大多数暴露了一条以”安装或执行”结尾的路由——许多安全团队根本不知道这些处理器已被注册。
防御
无需等待厂商补丁即可降低暴露面。
- **通过托管设置将 MCP 服务器加入白名单。**仅允许来自可信来源(你的组织或原始维护者)的具名服务器,并阻止任何由用户或智能体发起的其他安装。
- **在网关处过滤安装/执行类深链接路由。**在承载诱饵的邮件和网页网关上,阻止或隔离特定的安装 URI 模式(
cursor://…/mcp/install、vscode://mcp/install、Windsurf 的注册表安装、Warp 的warp://launch/)。 - 审计并尽可能禁用自定义 URL 方案处理器(
cursor://、vscode://、codex://、claude-cli://),先从盘点哪些已被注册开始。 - **监控智能体启动了什么。**对任何新增或变更的 MCP 服务器定义发出告警。高价值信号——即向用户展示的内容与实际执行的内容之差——需要对智能体 MCP 流量的在途可见性。
- **将每个深链接参数都视为敌对输入,将每个同意对话框都视为本身不足以构成边界。**让智能体远离不可信的代码库,不要依赖单一确认屏幕作为全部防线。
Status
| 项目 | 参考 | 日期 | 说明 |
|---|---|---|---|
| DeepJack 披露 | Adversa AI | 2026-07-15 | 两个变体;在 Cursor 3.9.8 上复现 |
| 先前相关缺陷 | CVE-2025-54133 (GHSA-r22h-5wp2-2wfv) | 2025 | 对话框未显示参数;已在 Cursor 1.3 修复 |
| 根因(对话框) | Cursor 分类处理(据报告) | 2026-04-27 | 单行字段使内容滚动到视野之外 |
| 先前深链接武器化 | Proofpoint “CursorJack” | 2025 | 通过安装深链接从钓鱼到命令执行 |
| 厂商状态 | 报告被以重复为由关闭 | 2026 | 发布时该原语被报告为仍然有效 |
正确的定性不是”又一个 Cursor 漏洞”。而是:智能体编码工具各自从零重建了那句古老的”你确定要运行这个吗?“提示——并要求它在一个组织中最有价值的机器上、在其身后空无一物的情况下,安全地呈现攻击者提供的命令。
Sources
- → https://adversa.ai/blog/cursor-security-deepjack-deeplink-vulnerability-mcp-rce/
- → https://nvd.nist.gov/vuln/detail/CVE-2025-54133
- → https://github.com/cursor/cursor/security/advisories/GHSA-r22h-5wp2-2wfv
- → https://www.proofpoint.com/us/blog/threat-insight/cursorjack-weaponizing-deeplinks-exploit-cursor-ide
- → https://cwe.mitre.org/data/definitions/88.html