
脱离 OpenAI Codex 沙箱的两种途径:Heapjack 与 Overpatch
- Orca新OrcaCyber: GLM 5.3 Flash Abliterated2026-10-2795 tok/s
- Orca新OrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 每百万 tokens · 252 tok/s
- Orca新OrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 每百万 tokens · 86 tok/s
- Moonshot新MoonshotAI: Kimi K3.1 Pro2026-10-2455智能
- Orca新OrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 每百万 tokens · 108 tok/s
- minimax新MiniMax: M3.1 Flash2026-10-1943智能
- Orca新Orca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 每百万 tokens · 50 tok/s
- deepseek新DeepSeek: DeepSeek V4.1 Flash 10172026-10-1745智能
- DeepSeek新DeepSeek: DeepSeek V4.1 Flash2026-10-1740智能
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 每百万 tokens · 114 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952智能
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856智能
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 每百万 tokens · 120 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238智能
- OpenAIOpenAI: GPT-6 Sol2026-09-2248智能
- AnthropicAnthropic: Claude Opus 5.52026-09-2258智能
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2138智能
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2146智能
- xAIGrok 4.72026-09-2146智能
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 每百万 tokens · 198 tok/s
2026年9月15日,Accomplish AI 的首席安全研究员 Oren Yomtov 发布了一份技术报告,介绍了绕过 OpenAI Codex 编程智能体沙箱的两种不同方式。据其报告,这两个问题均于2026年8月12日报告给 OpenAI,并在八天内修复:Heapjack 存在于 Codex Desktop 26.818.21641 构建版本中,Overpatch 存在于 Codex CLI 0.149.0 中。Heapjack 是两者中更严重的一个。除在 Codex 中打开代码仓库并就代码提问外,无需被攻击者做任何事;而且它以只读模式运行——这是该产品提供的最严格模式——没有审批提示,屏幕上也不显示任何内容。据云安全联盟称,这两个漏洞均未被分配 CVE 编号,OpenAI 也未发布单独公告,且尚无人员被报告因其受到伤害。它被与今年其他智能体控制类条目一起收录在AI 事件档案,其中每条记录都附有来源文档、置信度等级和争议标记。
Heapjack:token 留在了不可信侧能够读取的堆中
Codex Desktop 在安装 Yomtov 所攻击的组件之前不会询问。安装时,它会将 node_repl 块写入位于 ~/.codex/config.toml 的全局配置文件,而 Yomtov 报告称,既没有选择加入的选项,也没有可将其关闭的设置。由于该条目位于共享配置中,而不是每用户的选择中,普通 Codex CLI 用户会在从未被询问的情况下继承同一工具。
node_repl 工具本身是一个在沙箱之外运行的原生程序。它可以打开应用程序、连接 Unix 套接字并编辑全局配置文件。它在沙箱内启动的是一个单独的 Node.js 进程,而该进程持有两个 JavaScript 执行上下文:一个包含 OpenAI 自有代码的可信上下文,另一个是运行交给智能体执行的任何内容的不可信上下文。
受信任上下文通过出示一个随机令牌来证明自己受信任,该令牌在每次运行时都会重新生成。这本来意在作为两个上下文之间的边界。但它并不是,因为这两个上下文都位于同一个 V8 isolate 中,共享同一个内存堆,所以该令牌只是内存中的一个字符串,不可信代码可以读取它。一位在 X 上对该披露作出反应的评论者更直白地指出了这一点,BleepingComputer 引用了他的一句话:“V8 上下文隔离的是全局对象,而不是内存,所以这个沙箱实际上只是一个堆从未同意过的承诺。”那是一种描述,而不是证据;证据是概念验证。
Yomtov 的漏洞利用正是该描述所暗示的那样运作。不受信任的 JavaScript 会调用 v8.getHeapSnapshot(),在生成的堆快照中扫描形如 UUID 的字符串,并逐一测试每个候选值。猜错时会返回 "not authorized"。而正确的令牌搭配无效参数时,返回的则是一个真正的验证错误。这两条错误消息之间的差异,正是用来识别正确值的那个"预言机"。
拿到令牌后,沙盒化进程会将自己的 JSON 请求写入文件描述符 1——也就是受信任上下文用来连接到原生父进程的同一个 stdout 管道。父进程会验证令牌,找到一个有效令牌,然后执行相应操作。在概念验证中,这项操作是系统 open 命令,它会把请求交给 launchd,并在完全脱离 Codex 进程树的情况下启动应用程序。同一个令牌还允许连接到任意 Unix 套接字,其中包括 Docker 守护进程套接字,并可触达一个用于编辑全局配置文件的工具。
所有这些都在只读模式下运行——谨慎用户之所以选择该模式,正是因为眼前这个仓库并不可信。整个过程在任何阶段都没有出现审批提示。实际场景很简单:在 Codex 中以只读模式打开一个克隆的仓库,并就代码提出一个问题。编写该仓库的人便能在机器上获得未沙箱化的命令执行权限,而屏幕上没有任何提示说明这一点。

Overpatch:一个补丁工具,它授予了它所触及的一切的父级。
第二个缺陷出在开源命令行代理 Codex CLI 中,而且它是权限漏洞,不是内存漏洞。在 workspace-write 模式下,该代理只能写入项目文件夹内部,不能写到其他位置;针对主目录的 shell 命令会被拒绝。apply_patch 工具本应守住这条界线。但它却根据正在应用的补丁中所指定的路径来推导权限,并授予对每个路径父目录的写入权限。
在补丁中指定一个位于 /tmp 下的路径,授权范围就会扩大到磁盘根目录,因为 /tmp 的父目录是 /。这就是全部伎俩。
该工作利用在单个补丁中使用两个条目。第一个条目指定 /tmp,并且不做任何有用的事——它会失败,因为文件无法覆盖目录——它存在的唯一目的就是扩大授权范围。第二个条目通过一个指向主目录的符号链接向 .zshrc 追加一行。移除第一个条目,写入就会被拒绝。保留它,开发者打开的下一个终端就会在沙箱之外运行攻击者的那一行,而沙箱则完全不再参与其中。
这使得 Overpatch 成为一个持久化缺陷,而非一次性问题。被投毒的启动文件会在开发者每次打开的 shell 中再次执行,直到有人读取 .zshrc 并注意到追加的那一行——这就是为什么 Cloud Security Alliance 的指南建议主动去寻找它,而不是等待症状出现。
这两个 bug 都把强制执行机制放进了被强制执行的对象内部。
Yomtov 自己的表述框架,才是能超出 Codex 范围流传的部分。apply_patch 根据攻击者提供的输入计算出了自己的权限。node_repl 把用来区分可信代码与不可信代码的密钥保存在了不可信代码能够读取的内存中。在每种情况下,沙箱都是从内部被告知,要放行某些东西。
这种形态并不新鲜。BleepingComputer 于 2026 年 9 月 20 日报道了该披露,并指出,2026 年 7 月,Pillar Security 的研究人员在 Cursor、Codex、Gemini CLI 和 Google 的 Antigravity 上演示了同样的思路:留在沙箱内的 agent 写入一个文件,随后由沙箱外受信任的工具执行该文件。Codex 这一组合的特别之处在于 Heapjack 中的只读绕过,以及没有任何设置可以禁用承载该绕过的组件。
修复措施,以及 OpenAI 说了什么、没说什么
据 Accomplish 称,OpenAI 已在 Codex Desktop build 26.818.21641 中修复了 Heapjack,并在 Codex CLI 0.149.0 中修复了 Overpatch。两者均在 8 月 12 日报告发布后的八天内落地——按该时间线直白推算,即到 8 月 20 日为止——Yomtov 将这一转变归功于 OpenAI。
OpenAI 未针对这两个漏洞中的任何一个发布独立的安全公告,也没有分配 CVE 标识符;Cloud Security Alliance 在日期为 2026 年 9 月 22 日的一份研究简报中记录了这两项缺失。OpenAI 发言人在被要求置评时对 BleepingComputer 表示:“我们感谢研究人员联系我们并分享其发现。我们已在 8 月解决了这两个问题,但我们正在持续加强沙箱,近期更新收紧了智能体可写入文件位置的控制,并扩大了这些防护措施在跨平台上的测试。”
那份声明确认了这些修复,但对机制只字未提。它没有说明八月的改动是移除了这一设计模式,还是堵住了从中引出的两条具体路径。OpenAI 之外的任何人也没有这样说过。

哪些已得到确证,哪些仅依赖一位研究者
档案馆将本条记录归档为一项研究发现,严重性高,区域为全球,置信度为 B——有记录,但来自单一或二手来源——无争议,且未记录到实际危害。这个评级是阅读本文其余部分的正确视角,因为多方确认的内容与只有发现者断言的内容之间的分野贯穿整个故事。
已确立,意即不止一方这么说:
• 披露内容存在并注有日期。Yomtov 的文章于 2026 年 9 月 15 日发布;两个缺陷均于 2026 年 8 月 12 日报告给 OpenAI,并且据他所说,已在八天内修复。
• OpenAI 证实其已于 8 月采取行动。其发言人告诉 BleepingComputer,这两个问题均已得到处理;这独立于发现者印证了报告与修复的时间线,尽管该公司并未发布任何公告,也没有发布自己的技术说明。
修复版本的说法保持一致。Accomplish 给出了 Codex Desktop 的 Build 26.818.21641 和 Codex CLI 的版本 0.149.0,BleepingComputer 重复了这些信息,乌干达国家计算机应急响应小组与协调中心在 2026 年 9 月 22 日的一份公告中也载有这些内容,并将这两者评为“红色”。
• 无 CVE、无厂商公告,也无已报告的利用情况。云安全联盟(Cloud Security Alliance)2026年9月22日的说明记录称,既不存在 CVE,也不存在 OpenAI 的单独公告,并且未报告任何已确认的案例表明有组织发现了 Overpatch 的持久化机制存在。
• 该档案并未对其中任何内容提出异议。该记录被标记为 disputed false,其置信度等级反映的是来源模式,而非对事实存在任何分歧。
未确立,或除发现者外无人确立的:
• 机制细节来自 Yomtov。堆快照 oracle、共享文件描述符、父目录授权——所有这些都出自他的技术文章和概念验证。云安全联盟(Cloud Security Alliance)的说明是当前流传的第三方总结中最详细的一份,其中描述该说明综合了他的陈述与 BleepingComputer 的报道,且并未声称其复现了任一漏洞利用或测试了任一修复方案。CERT.UG 的公告汇编了同样的材料。
• 存在漏洞的版本范围从未公布。只指明了修复版本,因此没有清单列出哪些早期构建带有各个缺陷。
• 对于已打补丁的安装是否能免受这一类漏洞的影响(而非仅能免于这两个实例),目前并未说明。OpenAI 所称的“不断加强我们的沙箱”是一项总体承诺,而不是对某一具体机制的声明。
• 尚未有报告称有人利用过这两个漏洞中的任何一个。这只是缺乏报告,并不等于证明不存在利用,而且概念验证表明,Heapjack 路径不会在屏幕上留下任何可供用户注意到的东西。
用户可以操作的内容
Any person using a Codex Desktop build earlier than 26.818.21641, or a Codex CLI version earlier than 0.149.0, is on the vulnerable side of the line drawn by Accomplish, and updating is the only remedy offered by the disclosure. In addition, the Cloud Security Alliance recommends auditing past Codex Desktop sessions that involved untrusted repositories for launchd or open activity and Docker socket connections, and checking shell startup files — .zshrc, .bashrc, and their equivalents — for commands that were appended rather than written by the user.
同一份说明还建议,当仓库不可信时,不要将只读模式视为保护措施——这正是 Heapjack 自身不得不得出的结论。其结构性建议更进一步:用物理进程与内存隔离取代共享密钥和惯例,将凭据置于智能体无法触及之处,并把引用项目之外路径的补丁一律视为可疑。这些都是第三方的提议。除了两次版本号提升之外,OpenAI 是否已采纳其中任何一项,尚未公开。

最后有两点值得区分开来。其一是一款广泛使用的编码智能体中的两个漏洞:于2026年8月12日报告,在八天内修复,并通过两个构建号关闭。其二是 Yomtov 提出的设计问题——沙箱能否由它本应包含的代码来强制执行——而这个问题不是版本号能回答的。Accomplish 和 OpenAI 都没有表示八月的改动解决了这个问题。
