系统:运行中
← 返回所有攻击
AGENTS MEDIUM NEW

DeepJack:Cursor 的 MCP 安装深链接中隐藏的参数导致代码执行

构造的 cursor:// 链接会安装攻击者控制的 MCP 服务器,其真实命令在对话框中被滚动到屏幕之外,单击一次即可实现无沙箱代码执行。

2026-07-16 // 5 min affects: cursor, cursor-3.9.8, vscode, windsurf, warp, mcp, coding-agents

摘要 对 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 处理器,且大多数暴露了一条以”安装或执行”结尾的路由——许多安全团队根本不知道这些处理器已被注册。

防御

无需等待厂商补丁即可降低暴露面。

  1. **通过托管设置将 MCP 服务器加入白名单。**仅允许来自可信来源(你的组织或原始维护者)的具名服务器,并阻止任何由用户或智能体发起的其他安装。
  2. **在网关处过滤安装/执行类深链接路由。**在承载诱饵的邮件和网页网关上,阻止或隔离特定的安装 URI 模式(cursor://…/mcp/installvscode://mcp/install、Windsurf 的注册表安装、Warp 的 warp://launch/)。
  3. 审计并尽可能禁用自定义 URL 方案处理器cursor://vscode://codex://claude-cli://),先从盘点哪些已被注册开始。
  4. **监控智能体启动了什么。**对任何新增或变更的 MCP 服务器定义发出告警。高价值信号——即向用户展示的内容与实际执行的内容之差——需要对智能体 MCP 流量的在途可见性。
  5. **将每个深链接参数都视为敌对输入,将每个同意对话框都视为本身不足以构成边界。**让智能体远离不可信的代码库,不要依赖单一确认屏幕作为全部防线。

Status

项目参考日期说明
DeepJack 披露Adversa AI2026-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