Cursor AI 代码编辑器修复漏洞,允许攻击者通过提示注入运行命令
Cursor AI 代码编辑器曝出高危漏洞 CVE-2025-54135(CVSS 8.6),允许攻击者通过中毒的 MCP 服务器实现远程代码执行,利用 Slack 消息注入或 GitHub 项目中的隐藏提示操纵代理行为,窃取数据或执行命令。漏洞已在 1.3 版本修复,Cursor 改为使用允许列表机制以增强安全。类似攻击也影响 Gemini CLI,用户应及时更新版本防护。
网络安全研究人员披露了流行的人工智能 (AI) 代码编辑器 Cursor 中一个现已修补的高严重性安全漏洞,该漏洞可能导致远程代码执行。
该漏洞的编号为CVE-2025-54135 (CVSS 评分:8.6),已在 2025 年 7 月 29 日发布的1.3 版本中得到解决。该漏洞由 Aim Labs 命名为 CurXecute,该实验室此前曾披露过EchoLeak。
Aim Labs 团队在与 The Hacker News 分享的一份报告中表示:“Cursor 以开发人员级别的权限运行,当与获取不受信任的外部数据的 MCP 服务器配对时,该数据可以重定向代理的控制流并利用这些权限。”
“通过 MCP 向代理提供中毒数据,攻击者可以在用户权限下获得完全远程代码执行,并实现许多事情,包括勒索软件、数据盗窃、人工智能操纵和幻觉等机会。”
换句话说,远程代码执行由单个外部托管的提示注入触发,它会静默重写“~/.cursor/mcp.json”文件并运行攻击者控制的命令。
该漏洞与 EchoLeak 类似,因为这些工具由模型控制协议 (MCP) 服务器公开供 AI 模型使用,并促进与外部系统的交互(例如查询数据库或调用 API),可能会获取不受信任的数据,从而毒害代理的预期行为。
具体来说,Aim Security 发现用于在 Cursor 中配置自定义 MCP 服务器的mcp.json 文件可以触发任何新条目的执行(例如,添加 Slack MCP 服务器),而无需任何确认。
网络安全
这种自动运行模式尤其危险,因为它可能导致攻击者通过 Slack 消息注入的恶意负载自动执行。攻击流程如下:
用户通过 Cursor UI 添加 Slack MCP 服务器
攻击者在公共 Slack 频道中发布带有命令注入有效载荷的消息
受害者打开一个新的聊天室,并要求 Cursor 的代理使用新配置的 Slack MCP 服务器来总结他们的消息,提示是:“使用 Slack 工具来总结我的消息”。
代理会遇到一条特制的消息,该消息旨在向其上下文中注入恶意命令
Aim Security 表示:“该漏洞的核心原因是全局 MCP JSON 文件的新条目会自动启动。即使编辑被拒绝,代码执行也已经发生了。”
整个攻击过程因其简单性而引人注目。但它也凸显了人工智能辅助工具在处理外部内容(在本例中是任何第三方 MCP 服务器)时如何开辟新的攻击面。
该公司补充道:“随着人工智能代理不断连接外部、内部和交互世界,安全模型必须假设外部环境可能会影响代理运行时,并监控每一次跳跃。”
Cursor 1.3 版还解决了自动运行模式的另一个问题,该问题可以使用 Base64 编码、shell 脚本以及将 shell 命令括在引号中(例如“e”cho 绕过)等方法来执行不安全的命令,轻松绕过平台基于拒绝列表的保护。
在 BackSlash 研究团队负责任地披露之后,Cursor 已采取措施,彻底弃用自动运行的拒绝列表功能,转而采用允许列表。
研究人员 Mustafa Naamneh 和 Micah Gold表示:“不要指望Vibe 编码平台提供的内置安全解决方案是全面或万无一失的。最终用户组织有责任确保代理系统配备适当的防护措施。”
与此同时,HiddenLayer 还发现,Cursor 无效的拒绝列表方法可以通过在 GitHub README.md 文件中嵌入隐藏的恶意指令来武器化,从而使攻击者能够窃取 API 密钥、SSH 凭据,甚至运行被阻止的系统命令。
研究人员 Kasimir Schulz、Kenneth Yeung 和 Tom Bonner 指出:“当受害者在 GitHub 上查看该项目时,提示注入是不可见的,他们要求 Cursor git clone 该项目并帮助他们进行设置,这是基于 IDE 的代理系统中常见现象。”
身份安全风险评估
“然而,在克隆项目并查看自述文件以查看设置项目的说明后,提示注入接管了 AI 模型,并迫使它使用 grep 工具在用户工作区中查找任何密钥,然后用 curl 提取密钥。”
HiddenLayer 表示,它还发现了其他弱点,这些弱点可能会被滥用,通过覆盖为代理模型提供的 OpenAI API 请求的基本 URL 来泄露 Cursor 的系统提示,以及通过利用两个良性工具 read_file 和 create_diagram 窃取用户的私人 SSH 密钥,这就是所谓的工具组合攻击。
这本质上涉及在 GitHub README.md 文件中插入一个提示注入命令,当受害者用户要求代码编辑器总结文件时,该文件由 Cursor 解析,从而导致命令的执行。
隐藏指令使用 read_file 工具读取用户的 SSH 私钥,然后利用 create_diagram 工具将密钥泄露到攻击者控制的 webhook.site URL。Cursor 在 1.3 版本中已修复所有已发现的缺陷。
在 Tracebit 设计了针对 Google 的Gemini CLI (一种针对编码任务进行微调的开源命令行工具)的攻击之际,Cursor 中出现了各种漏洞的消息,该攻击利用该工具的默认配置,使用 curl 秘密地将敏感数据泄露到攻击者控制的服务器。
与 Cursor 案例中观察到的情况类似,攻击需要受害者(1)指示 Gemini CLI 与攻击者创建的 GitHub 代码库进行交互,该代码库在GEMINI.md 上下文文件中包含恶意的间接提示注入,以及(2)将良性命令添加到允许列表(例如 grep)。
Tracebit 创始人兼首席技术官 Sam Cox表示:“针对这些元素的快速注入,加上 Gemini CLI 中的重要验证和显示问题,可能会导致无法检测的任意代码执行。”
为了减轻攻击带来的风险,建议 Gemini CLI 用户将其安装升级到2025 年 7 月 25 日发布的0.1.14 版本。
评论0次