CVE-2026-26268:Cursor 的智能体把一次 git checkout 变成代码执行
恶意仓库藏有一个带自动 hook 的 Git「裸」仓库。当 Cursor 的 AI 智能体为「解释这段代码」而运行 git checkout 时,hook 被触发——在开发者机器上任意代码执行,无需确认。已在 Cursor 2.5 修复。
这是什么?
CVE-2026-26268 是 AI 驱动的 IDE Cursor 中的一个高危任意代码执行漏洞,影响 2.5 之前的所有版本。Cursor 于 2026 年 2 月发布了安全公告(GHSA-8pcm-8jpx-hv8r),Novee Security 研究员 Assaf Levkovich 于 2026 年 4 月 28 日公开披露了其机制(The Hacker News 于 4 月 30 日报道)。该漏洞 CVSS 评分为 8.1;厂商将其归类为通过 .git 配置实现的沙箱逃逸。本次披露已与 Cursor 协调,补丁在公开前已发布。
该缺陷并不在 Cursor 自身的模型逻辑里。它是 Git 的一种功能交互:一旦 AI 智能体在它不受控的仓库中自主执行 Git 命令,便可被利用。结果是:攻击者的代码直接在开发者工作站上执行,且没有任何确认对话框。
工作原理
两个合法的 Git 功能组合在一起制造了这一条件:
- Git hook 是在
post-checkout、pre-commit等事件上自动运行的脚本。它们位于仓库的.git目录中,而该目录并不属于被追踪、可审阅的文件树。 - **裸仓库(bare)**只包含
.git数据,没有工作目录。它可以被嵌入到一个普通仓库内部。
攻击者发布一个外观正常的公开仓库,其中隐藏着一个携带恶意 hook 的裸仓库。触发点是智能体的自主性。按照披露的流程:
- 开发者克隆该公开仓库并在 Cursor 中打开。
- 提出一个无害的问题——「解释这段代码」。
- Cursor 的智能体读取仓库的
AGENTS.md/ Cursor Rules,其中指示它进入嵌套的裸仓库并运行git checkout。 - checkout 触发被植入的 hook → 代码执行。
这里不复现任何 payload,也无需复现即可理解教训。用户授权的是「解释这段代码」,而不是「执行攻击者的 shell 脚本」。但智能体为完成请求运行了 git checkout,hook 便在智能体的推理链之外、在用户的视野之外执行了。智能体从未报告自己运行了脚本:在它看来,它只是执行了一条例行的 Git 命令。
这与其他编码智能体披露的结构性模式相同:不可信内容中的指令文件(通过 AGENTS.md 的供应链注入)引导智能体,而一个被自动批准或不可见的动作把这种引导变成执行——参见 SymJack 撒谎的批准对话框与 Cursor 的白名单绕过。
为什么重要
开发者机器是与生产环境同等重要的目标。它存放源代码、SSH 密钥、云凭据与签名令牌,并且位于公司网络内部。在那里实现任意代码执行,往往是更广泛入侵或供应链跳板的第一步。
让这一类漏洞变得新近危险的,是**「需要人为动作」这一约束的崩塌**。针对开发者的经典「客户端」攻击需要一个刻意的错误:打开恶意文件、运行脚本、点击链接。这种对人为动作的需求本身就是对可利用性的一道刹车。自主智能体取消了这道刹车。如今,克隆一个公开仓库并提一个问题,就足以抵达代码执行——而 AI 辅助的工作流正在大规模地把这一循环自动化。
它也扩大了审计面。当安全团队审查一款 AI 编码工具时,工具自身的代码只是图景的一部分。智能体所操作的内容——仓库、AGENTS.md、Cursor Rules、克隆树中的 hook——如今已成为攻击面的一部分;而智能体所驱动的执行环境(此处是 Git)与该工具的安全直接相关。
防御
Cursor 拥有具体的修复;防御者拥有周边的影响范围以及该模式的下一个变种。
- 将 Cursor 升级到 2.5 或更高版本。 这是 CVE-2026-26268 的厂商修复。按你常规的打补丁节奏跟踪编码智能体的安全公告。
- 对不可信仓库禁用或隔离 Git hook。 在克隆信任边界之外的代码时,把
core.hooksPath指向一个空的、受控的目录,并在让智能体操作之前检查任何嵌套的.git目录。git clone --no-checkout加手动审阅可避免在 checkout 时触发 hook。 - 把智能体指令文件视为不可信输入。 克隆仓库中的
AGENTS.md、Cursor Rules、README 指令及类似内容都可被攻击者控制。不要让它们悄悄授权对你未选择的路径进行文件系统导航或 Git 操作。 - 在沙箱中运行编码智能体。 容器、虚拟机或受限用户可限制被触发的 hook 能触及的范围——凭据、网络以及文件系统的其余部分。让密钥远离智能体运行的环境。
- 让自主动作可见、可审阅。 相较于自动批准,优先选择能暴露智能体所执行的具体命令(尤其是 Git 与 shell 操作)的配置。对实际运行了什么进行「human-on-the-loop」监督,正是这个 CVE 所利用的、缺失的那道控制。
- 先在一次性环境中打开不可信仓库。 先克隆、审阅,然后才把代码带入你的智能体拥有真实权限的环境。
状态
| 项目 | 详情 |
|---|---|
| CVE | CVE-2026-26268 |
| 组件 | Cursor IDE(AI 智能体 + Git 交互) |
| 类别 | 经 .git 配置的沙箱逃逸 → 任意代码执行 |
| CVSS | 8.1(高) |
| 受影响 | Cursor < 2.5 |
| 修复版本 | Cursor 2.5 |
| 厂商公告 | 2026 年 2 月(GHSA-8pcm-8jpx-hv8r) |
| 公开披露 | 2026 年 4 月 28 日(Novee Security) |
| 披露方式 | 协调披露;公开前已修复 |
正确的定位不是「Cursor 的一个 bug」。而是:自主性把早已为人熟知、原本无害的环境功能,转化为一键攻击路径。Git hook 与裸仓库多年来一直如此运作;改变的是一个愿意在无人监督下对不可信仓库运行 git checkout 的智能体。任何自主驱动强大本地环境的 AI 编码工具都继承了同样的形态,而持久的防御在于:把智能体所接触的内容视为敌对的,并保留一个能够看清智能体实际执行了什么的人。
Sources
- → https://novee.security/blog/cursor-ide-cve-2026-26268-git-hook-arbitrary-code-execution/
- → https://thehackernews.com/2026/04/google-fixes-cvss-10-gemini-cli-ci-rce.html
- → https://github.com/cursor/cursor/security/advisories/GHSA-8pcm-8jpx-hv8r
- → https://www.csoonline.com/article/4164250/critical-cursor-bug-could-turn-routine-git-into-rce.html