Hacktron 的 OpenAI 黑客攻击:堆溢出与 SSO 配置错误导致内部仓库被攻破

关键教训

Hacktron 将 libheif 图像解码器中的堆缓冲区溢出与配置错误的 OpenAI SSO 流程相结合,劫持了员工的 ChatGPT/Codex 账户,获取 GitHub 集成权限,并在 OpenAI 内部单体仓库中提交了一个拉取请求——整个过程仅用时 72 小时,且仅需数小时的人工投入。


攻击链概览

攻击通过九个步骤完成:

  1. libheif 图像解码器包含越界读写原语。
  2. Debian 缺少安全补丁,导致 Discourse Docker 镜像中存在易受攻击的 libheif 版本(1.19.7/1.19.8)。
  3. ImageMagick 在处理 HEIC/HEIF 上传时调用 libheif。
  4. OpenAI 的公开论坛(community.openai.com)运行 Discourse。
  5. OpenAI SSO(auth.openai.com)将论坛登录与 ChatGPT/Codex 账户关联。
  6. 被攻破的论坛账户使攻击者获得了员工 ChatGPT/Codex 会话的控制权。
  7. Codex 与 GitHub 的集成允许访问仓库。
  8. 攻击者以概念验证方式在内部 openai/openai 单体仓库中提交了 PR #1186742。
  9. 该链条表明,任何使用 OpenAI SSO 的服务都可能被类似利用。

漏洞详情

libheif 中的堆溢出

  • Discourse 将 HEIC/HEIF 文件转发给 ImageMagick,因为 FastImage 不支持 HEIF。
  • 引入溢出的上游 libheif 提交未标记为安全修复,也未分配 CVE,因此 Debian 12/13 发布了易受攻击的 1.19.x 版本。
  • 溢出允许在图像解码过程中进行任意越界读写,提供经典的远程代码执行(RCE)原语。

OpenAI SSO 配置错误

  • OpenAI 的论坛允许通过 auth.openai.com 使用 OpenAI 登录。
  • SSO 流程未能充分隔离认证令牌,导致被攻破的论坛会话可劫持关联的 ChatGPT/Codex 账户。
  • 一旦员工的 Codex 会话被控制,攻击者即可调用该员工已授权的任何 GitHub 集成。

攻击执行时间线

时间(UTC) 关键节点
7月23日 在 Discourse 的 Docker 镜像中发现 libheif 溢出。
7月24日 使用 Claude Opus 4.8 开发本地漏洞利用,但受 ASLR 影响而受阻。
7月25日 06:00 Claude Opus 5 生成了可工作的 ARM64 漏洞利用,随后使用 jemalloc 将其移植到 x86‑64。
7月25日 10:00 自主 Claude 循环在 Discourse Cloud 上实现 RCE,读取 /etc/hosts,并使用生成的脚本在 OpenAI 的论坛实例上获得 RCE。
7月25日 ≈ 12:00 劫持了一名员工的 ChatGPT/Codex 会话,利用 Codex‑GitHub 集成在内部单体仓库中提交 PR #1186742。
7月25日 – 7月27日 向 OpenAI、Discourse 和 Bugcrowd 报告发现,从 OpenAI 获得 6,500 美元赏金。

生成式 AI 的作用

  • Claude Opus 4.8 需要多次会话和手动调整才能生成可靠的漏洞利用。
  • Claude Opus 5 在数小时内生成了可工作的漏洞利用,自动适应目标的 jemalloc 配置。
  • 研究人员指出,从 Opus 5 到 GPT‑5.6‑Sol 在未知环境中的能力有明显跃升。
  • AI 辅助将漏洞开发时间从数天缩短至数小时,但人类指导在协调和验证方面仍至关重要。

社区与厂商响应

  • Discourse 修补了易受攻击的 libheif 版本,对 ImageMagick 进行沙箱隔离,并发布了安全公告(GHSA‑vhm9‑85gw‑x335)。修复需要重建 Docker 镜像(git pull && ./launcher rebuild app)。
  • OpenAI 协调了披露流程,支付了 6,500 美元赏金,并更新了 SSO 流程(细节未公开)。
  • Debian 于 2026 年 8 月 8 日发布了易受攻击 libheif 包的安全更新。

Hacker News 评论

"Claude Opus 5 快速生成可工作的漏洞利用,表明黑客攻击正变得几乎完全可由机器验证,允许超越传统 CTF 训练的快速迭代。" – @usernomdeguerre

"未沙箱化的 ImageMagick 仍是安全噩梦;我们需要更安全的解析器,如 Google/Wuffs 或强大的沙箱机制。" – @oefrha

"自托管运营商必须重建 Discourse 容器;否则易受攻击的 libheif 会隐藏在网页界面更新之后。" – @sams99

"为一个可能暴露整个单体仓库的漏洞链支付 6,500 美元赏金是荒谬的低;黑市价值会高几个数量级。" – @rvz

"SSO 漏洞才是真正的关键部分——博客省略了细节,让读者猜测账户劫持是如何实现的。" – @sergiotapia

影响评估

  • 范围: 任何启用 OpenAI SSO 的服务(内部工具、第三方集成)都可能通过相同路径被攻破。
  • 影响范围: 对 GitHub、Slack、邮件及其他连接服务的访问,放大了潜在的数据泄露风险。
  • 经济成本: 研究项目成本低于 3,000 美元的 token 使用;人工投入以小时计,而非数周。
  • 战略影响: AI 驱动的漏洞生成将传统的“数月工作”时间线压缩至数天,降低了复杂攻击的门槛。

缓解建议

  1. 修补 libheif – 升级至上游 v1.23.4 或更高版本;确认分发包包含回溯修复。
  2. 沙箱图像处理 – 将 ImageMagick(或任何原生解码器)运行在强化的沙箱中(如 Landlock、seccomp 或独立容器),并强制执行严格的资源限制。
  3. 限制 HEIF/AVIF 接受 – 除非绝对必要,否则禁用 HEIF/AVIF 格式接受;优先使用 JPEG/PNG 进行网页上传。
  4. 审查 SSO 令牌范围 – 确保为论坛登录生成的 SSO 令牌无法用于访问 Codex 或 GitHub 等高权限服务。
  5. 持续依赖项监控 – 跟踪低层级库(如 libheif、libde265)的上游安全补丁,并及时应用。
  6. AI 集成工作流的纵深防御 – 将 AI 驱动的集成(Codex、ChatGPT)与特权内部资源隔离;强制执行最小权限 OAuth 范围。

更广泛的启示

  • 复杂性安全正在瓦解: AI 可以自动化将内存损坏漏洞转化为可靠利用的知识密集型步骤,消除了以往因专家稀缺而提供的保护。
  • 供应链警觉性: 一个在 Slack、Meta、GitHub Enterprise 和众多 Web 框架中广泛使用的图像解码库,已成为高价值攻击面。
  • 经济格局转变: 完整漏洞链的成本现在以计算资源的美元计,而非工程月数,要求重新审视威胁模型。
  • 负责任披露: 研究人员、厂商和赏金平台之间的及时协调可减轻损害,但赏金金额应反映真正的战略影响。

文中引用的帖子和评论均原文复制。除原始材料外,未添加任何额外事实。

Sources

相关