社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

严重Cursor 0Day漏洞,恶意Git仓库可自动触发Windows代码执行

FreeBuf • 4 月前 • 182 次点击  
FreeBuf


Part01

打开仓库即中招

在Windows上通过Cursor打开一个仓库,如果项目根目录中有一个名为git.exe的文件,Cursor会直接运行它。无需点击、无需确认对话框、也没有任何关于文件夹中即将执行内容的警告。


无论该二进制文件执行什么操作,它都会以你的身份运行,访问你的源代码、SSH密钥和云令牌。只要项目保持打开状态,Cursor会不断重新运行它。


不需要提示注入、不需要Agent(代理)、不需要模型参与,也不需要对机器的预先访问:打开文件夹就是完整的利用过程,结果是当前登录用户的任意代码执行。


AI安全公司Mindgard于2025年12月15日向Cursor报告了该漏洞,并于七个月后的周二公布了完整的技术细节。目前仍然没有补丁,Cursor也未就此问题发布任何安全公告。


Part02

恶意git.exe自动执行

该机制只需一句话就能概括。当项目加载时,Cursor会检查多个位置以查找Git二进制文件,其中之一就是工作区本身。技术文章中的Process Monitor输出显示,Cursor.exe使用命令行git rev-parse --show-toplevel生成仓库根目录下的二进制文件。


这与微软VS Code文档中描述的仓库根目录探测相同。技术文章未说明Cursor是自行搜索这些位置,还是将未限定路径的git交给Windows,让其按搜索顺序查找。


Mindgard的概念验证(PoC)是Windows计算器,将其重命名为git.exe并提交到仓库根目录。克隆、打开、完成。截图显示,项目打开后计算器窗口自行堆叠起来。


前置条件听起来像是难点:攻击者的二进制文件位于你的项目根目录中。但并非如此。克隆陌生人的仓库正是二进制文件落地到磁盘的第一步,开发人员及其Agent每天都在这样做。攻击者最初不需要任何立足点。这正是此漏洞跨越的距离:从任何人都可以发布的仓库到以你的身份运行代码。


证据上有一个局限。Mindgard最新确认的日期为2026年4月30日,针对Cursor 3.2.16版本,而当前发布版本是7月10日发布的3.11。技术文章称该漏洞在其测试的最新版本中依然存在,但未指明该版本号。


The Hacker News审查了Cursor已发布的所有33份安全公告,发现截至7月15日,没有一篇涉及此问题。未分配CVE编号。我们询问Cursor哪个版本修复了该问题,以及Mindgard最后测试的是哪个版本。如有任何回复,本文将持续更新。


Part03

应对措施

目前没有补丁,因此以下所有选项均为临时解决方案。在受管理的Windows环境中,Mindgard建议使用AppLocker或Windows应用控制拒绝规则,按名称和路径阻止工作区根目录下的可执行文件,例如%USERPROFILE%\source\repos*\filename.exe。


应使用路径规则,而非哈希值;攻击者二进制文件的哈希值各不相同。该公司指出,Windows没有内置的通用规则仅在特定父进程启动时阻止子进程,因此针对父进程的强制通常需要EDR。其他用户:在一次性虚拟机或Windows沙箱中打开不受信任的仓库。


同时遵循Cymulate的建议,在打开之前检查克隆的仓库或解压的存档。git.exe、npx.exe、node.exe和where.exe不应出现在项目根目录中。报告的处理过程则是故事的另一部分。


Cursor的安全页面称,公司会在“5个工作日内确认漏洞报告”。Mindgard在12月报告后一个月才收到Cursor首席信息安全官的首次实质性回复,对方解释称自动化程序未将该公司邀请到私有的HackerOne项目中。


重新提交的报告在第二天被关闭,标记为“仅供参考且超出范围”,随后在Mindgard提出异议后重新打开,HackerOne也复现了该问题。HackerOne于1月20日确认收到。此后,2月、3月和4月Mindgard多次请求更新,但未收到任何回复。


将Cursor的安全公告记录与Mindgard的时间线对照,可以看出其他研究人员的报告正在处理,而Mindgard的报告却被搁置。2026年2月13日,Cursor发布了GHSA-8pcm-8jpx-hv8r,这是一个Git钩子沙箱逃逸漏洞(CVE-2026-26268),由Novee通过协调披露报告,并在Cursor 2.5中修复。三天后,2月16日,Mindgard请求更新其Git相关报告,未获回复。7月14日,在完全披露当天,Cursor又发布了两份安全公告。


Mindgard写道:“完全披露是漏洞披露的核选项”,留作其他所有途径均失败时的最后手段。作者Aaron Portnoy曾在该领域的另一面工作多年:他领导过零日计划(Zero Day Initiative)并组织了前六届Pwn2Own竞赛。


Part04

相同漏洞,三家其他供应商

Mindgard并非第一个发现此问题的公司,也不是第一个从Cursor得到类似答复的公司。6月,Cymulate发布了AI工具中同类漏洞的研究结果:在Windows上,这些工具在解析辅助可执行文件时使用默认搜索顺序,该顺序会在可信系统路径之前检查工作目录。


GitHub Copilot CLI在启动时运行工作区中的git.exe,甚至在显示文件夹信任提示之前就已执行。Gemini CLI在从工作区启动时执行相同操作。Codex桌面应用在打开文件夹时执行,与Cursor类似。


截至Cymulate 6月4日的技术文章,这些供应商中没有一个发布修复。GitHub对其报告进行了分类并支付了赏金,随后将其降级为低危。Google同意Gemini CLI的发现有效但未发布补丁。OpenAI将Codex报告关闭为“不适用”,理由是可以替换git.exe的攻击者已经拥有系统访问权限。但这并非所报告的场景。Cursor在八天内将Cymulate关于Cursor CLI的报告关闭为“仅供参考”,理由是涉及恶意二进制文件的发现“缺乏攻击向量”。


那项研究确实产生了一个修复。AWS为其Kiro漏洞分配了CVE-2026-10591,表彰Cymulate并在Kiro 0.11中修补。但这是另一个不同的漏洞:一个Agent文件写入漏洞,允许恶意.vscode/tasks.json在打开文件夹时自动执行。所有关于二进制植入的报告均未产生修复。


此类问题早已存在。不受信任的搜索路径是弱点;将二进制文件植入搜索将发现的位置就是攻击手段。Windows在%PATH%之前检查当前目录,这正是2020年导致Git Credential Manager Core崩溃(CVE-2020-26233)的原因:递归克隆期间,位于仓库顶层的恶意git.exe替代了真正的git.exe。该问题在GCM 2.0.289中修复。


当时Blaze Information Security的PoC也是将calc.exe重命名为git.exe。六年过去了,同样的把戏再次得手,而这次针对的是一个在你打开文件夹时自动运行该探测的IDE。


现在已有四家供应商被证明存在工作区二进制文件在Windows上自行运行的问题,只要开发者将工具指向克隆的仓库即可触发。两家认为这根本不是漏洞;两家承认是漏洞但截至Cymulate的6月报告仍未发布任何内容。因此,责任落在了防御者身上,而在Windows上,安全的做法是将克隆的仓库视为可执行内容,因为它确实就是可执行内容。


参考来源:

Cursor Flaw Lets Malicious Cloned Repositories Trigger Windows Code Execution

https://thehackernews.com/2026/07/cursor-flaw-lets-malicious-cloned.html


推荐阅读


电报讨论


扫码加入AI安全交流群

下载FreeBuf知识大陆APP

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198893