返回
快讯

Cursor 两个高危缺陷可致沙箱逃逸

Cato AI Labs 报告 Cursor 存在两项高危漏洞 DuneSlide(CVE-2026-50548、CVE-2026-50549),可通过 prompt injection 让代理跳出安全 sandbox 并执行任意命令。Cursor 3.0 已修复,3.0 之前版本受影响,建议立即升级。

CVE-2026-50548CVE-2026-50549CVE-2025-54135CVE-2025-54136CVE-2026-26268

Cursor 这款 AI 代码编辑器中的两个缺陷,可能让一条看似普通的提示词就突破编辑器的安全 sandbox,并在开发者电脑上执行任意命令。整个过程无需点击,也没有可忽略的确认框。

Cato AI Labs 发现了这两个漏洞,并将其命名为 DuneSlide。它们分别被编号为 CVE-2026-50548 和 CVE-2026-50549,CVSS 评分均为 9.8 分(在更新的 CVSS 4.0 评分体系下为 9.3 分)。

修复补丁已经发布。两个漏洞都已在 Cursor 3.0 中修复,该版本于 4 月 2 日发布,3.0 之前的所有版本都受影响。Cursor 的开发商表示,Fortune 500 公司的使用率超过一半,因此如果你在使用该工具,应立即更新。

sandbox 的用途,以及它是如何失效的

从 2.x 版本开始,Cursor 默认会在 sandbox 内运行其 AI agent 发出的终端命令:这是一个锁定的环境,用来限制这些命令能够接触的内容,避免一条错误指令破坏整台机器。

DuneSlide 的目标就是逃出这个 sandbox。入口是 prompt injection。攻击者不会直接向你的 Cursor 输入内容,而是把指令植入 agent 会代表你读取的内容中,例如通过 Model Context Protocol(MCP)连接的服务,或网页搜索返回的页面。

你提出一个正常问题,隐藏指令会一并被带入;由于整个过程不需要你点击或批准,攻击属于“zero-click”。

这两个漏洞都用了同一个手法:先让 agent 写入一个本不该写的文件,再利用这次写入把 sandbox 关闭。

CVE-2026-50548 利用的是一个设置项。sandbox 允许向某个命令的工作目录写入,而这个目录是 Cursor 的 run_terminal_cmd 工具中的可选参数 working_directory。当 agent 将其设为非默认路径时,Cursor 会不加质疑地把该路径加入允许写入列表。被注入的指令会把它指向系统文件,而不是项目目录。只要覆盖 sandbox helper 本身(在 macOS 上路径为 /Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandbox),后续命令就会在没有 sandbox 的情况下运行。像 ~/.zshrc 这样的启动文件也可以作为目标。

CVE-2026-50549 利用的是一个安全检查。写入前,Cursor 会解析快捷方式(symlink),以确认真实目标是否位于项目目录内。问题出在回退逻辑:当检查失败时——例如目标不存在,或者攻击者从路径中的某个文件夹移除了读取权限——Cursor 会放弃检查,并信任该快捷方式在项目内的路径。攻击者创建一个指向项目外部的快捷方式,强制检查失败,Cursor 就会沿着该快捷方式直接写入,同样覆盖 sandbox helper。结果相同,只是入口不同。

一旦 sandbox 被解除,下一条命令就会以你的身份运行。这意味着开发者机器的控制权,以及编辑器已登录的任何云端或 SaaS 工作区。整个攻击链都源自一条看似无害的 prompt。

目前没有迹象显示这些漏洞已被用于真实攻击。Cato 将其作为研究披露,而不是一场活跃攻击活动;截至发布时,公开漏洞记录也没有已知利用迹象。

Cato 表示已于 2 月 19 日报告这两个问题。按 Cato 的说法,Cursor 在四天后拒绝了报告,称其威胁模型不涵盖对 MCP 服务器的滥用,即便是官方 Linear workspace 这类标准服务也不在内。

Cato 在 2 月 26 日继续升级上报;Cursor 重新打开报告、完成分流,并在 3.0 中发布了两个修复。CVE 编号于 6 月 5 日分配。

Cursor 还针对 symlink 漏洞发布了自己的安全公告,其 NVD 记录也已上线。

并非第一次,也很可能不是最后一次

DuneSlide 是 Cursor 一系列漏洞中的最新一个:这些漏洞都从被污染的 prompt 开始,最终走向代码执行,而且每次都会绕过不同的防护机制。The Hacker News 之前报道过更早的几轮:

CurXecute(CVE-2025-54135,2025 年 8 月)同样来自该团队,当时名为 Aim Security。被植入的 Slack 消息改写了 Cursor 的 ~/.cursor/mcp.json 配置,即使用户拒绝编辑也能运行命令。已在 1.3 中修复。

MCPoison(CVE-2025-54136)来自 Check Point Research,攻击者可以先让一个 MCP 配置获得一次批准,然后悄悄替换为恶意命令,而不会出现第二次提示。

CVE-2026-26268(2026 年 2 月)在仓库中隐藏了一个带陷阱的 Git hook,只要 agent 运行 Git 命令就会触发。已在 2.5 中修补。

2.x 版本中的 sandbox 是 Cursor 对上一波问题的回应。DuneSlide 则是在设法逃出这个回应。

Cato 表示,它正在披露其他 coding agent 中的类似缺陷,并认为问题是结构性的,而不是一连串孤立事件。

因此,对任何读取开放网络的 agent 来说,留下的一个问题是:把每个输入都视为有敌意,究竟会成为默认做法,还是仍会停留在逐个补丁式的应急处理。