三个人,一张图片,不到72小时,攻进了 OpenAI 的内部代码仓库。这不是电影剧本,这是7月25日真实发生的事。
安全团队 HacktronAI——Harsh Jaiswal 领队,成员 Mohan Pedhapati 和 Rahul Maini——参加了 OpenAI 的漏洞赏金计划。他们的武器不是零日核弹,而是一个开源图片库的老漏洞,加上 Anthropic 刚发布一天的 Claude Opus 5。OpenAI 事后支付了 6,500 美元赏金,并在约14小时内修复。
大多数报道把这个故事讲成一场戏剧:「OpenAI 被竞争对手的模型黑了」。这个角度很好笑,但它错过了真正重要的东西。
真正发生的是:软件行业运行了几十年的一个隐含假设,被三个人的账单击穿了。
一、攻击链不值得惊讶,成本才值得
先看攻击本身。它是一条经典的供应链路径,甚至有点平淡:
OpenAI 社区论坛基于 Discourse 搭建。用户上传 HEIC/HEIF 图片时,常规检测工具 FastImage 不支持这种格式,文件被转交 ImageMagick 处理,底层调用 libheif 解码库。libheif 存在一个堆缓冲区溢出漏洞——上游其实一年前就修了,但那次修复没有被标记为安全补丁,也没分配 CVE 编号,于是 Debian 12 和 13 的软件包从未收到回移。Discourse 的 Docker 镜像基于 Debian 12,装的是带洞的 libheif 1.19.7。
一张恶意 HEIF 图片上传,论坛服务器上实现远程代码执行(RCE)。第二个漏洞接棒:OpenAI 的 SSO 单点登录存在身份验证配置缺陷,团队借此接管了登录过论坛的用户的 ChatGPT 和 Codex 账号——其中包括 OpenAI 员工。员工的 Codex 关联着 GitHub 组织,团队用它向 OpenAI 内部 monorepo 提交了一个无害的 PR #1186742 作为证明,全程没有阅读任何内部代码。
这条链的每一步,放在三年前都是「高级威胁」的教科书素材。但真正改写规则的不是链路,是成本结构。
7月23日,团队先让上一代 Claude Opus 4.8 审查 Discourse 的 Docker 镜像。Opus 4.8 找到了那个未被回移的安全修复,也构建了部分可用的漏洞利用代码——但在开启 ASLR(地址空间布局随机化)的真实环境下,多个会话反复尝试,始终无法生成稳定的 exploit。
7月24日晚,Anthropic 发布 Opus 5。新会话开启后3小时内,Opus 5 产出了针对本地 Mac 的 ARM64 可用 exploit;随后被要求移植到 Discourse 使用的 x86-64 环境和 jemalloc 分配器。7月25日凌晨6点,本地确认图片上传 RCE。之后团队把 Claude 放进自主循环模式,通过代理将目标伪装成 CTF 靶机(绕过它拒绝攻击真实远程服务的护栏),上午10点再看,AI 已经在 Discourse Cloud 上拿到代码执行权限,读取 /etc/hosts 完成了验证。
上一代模型反复失败的任务,新一代模型发布次日几小时内完成。
二、「复杂性即安全」是如何运转的
要理解这次事件为什么是分水岭,得先看清旧世界的安全模型。
过去三十年,互联网的防御逻辑里藏着一条没写进任何合规文档的假设:复杂性是免费的护城河。一个内存损坏漏洞就算公开了、源码摆在桌面上,把它变成能打穿生产环境的可靠武器,仍然需要三种稀缺资源:
其一,专业知识——懂得堆布局、分配器行为、绕过 ASLR 的专家,全球屈指可数;其二,时间——数周到数月的逆向工程和调试;其三,环境情报——对目标系统具体配置的深度了解。
这三种资源叠在一起,意味着 0-day 武器的研发成本极高,通常只有国家级黑客部队才会为高价值目标投入。普通企业的安全策略因此可以简写为一句话:攻击者看不上我们。这就是所谓的「复杂性即安全」——不是你防守得好,是打你的成本不划算。
注意,AI 在这次事件里做的事情,恰好不是发现漏洞。libheif 的漏洞早就存在,修复代码早就躺在上游仓库里。AI 做的是第二段工作:把理论上的漏洞,快速变成针对具体环境的可靠武器。而这第二段,正是三种稀缺资源被消耗最多的地方。
三、利用经济学:安全领域的新定价模型
这里提出一个可复用的框架:任何网络攻击的可行性,可以由「利用经济学」三要素定价——知识成本、时间成本、情报成本。
旧均衡里,三项成本相乘,总价高到只有国家级玩家玩得起。AI 对这三项做了同一件事:商品化。
知识成本:Opus 4.8 已经能审查 Docker 镜像找出未被回移的安全修复;Opus 5 能写 ARM64 exploit 并通宵移植到 x86-64 加 jemalloc。这些原本是年薪百万美元的专家技能,现在是一次 API 调用的价格。
时间成本:从「拿到新模型」到「可靠的生产级 exploit」,计时单位是天,不是月。且团队观察到每一代模型都有可感知的跃升——后续测试中,GPT-5.6 Sol 甚至能在对目标一无所知、仅知漏洞存在的盲视条件下,自动完成内存泄漏、提权、横向移动的全链条。
情报成本:Adapt 到新目标只需一两天。HEIF Heist 扩展研究项目证实了这一点:两个月,覆盖 Slack、Zoom、Meta、GitHub Enterprise、Ruby on Rails 及 Next.js/Astro/Gatsby 等框架,三名研究员,总计 token 成本不到 3,000 美元。
三要素总价从「国家预算」跌到「几千美元」。攻防的定价模型变了,但绝大多数企业的威胁模型还没变。
还有一个更冷的细节:整个 HEIF Heist 期间,团队向各大公司的图片处理器发送了数千张导致进程崩溃的测试图片——除了 Shopify,没有任何一家公司检测到攻击活动。
四、这不是 OpenAI 的故事,是依赖链的故事
把框架推演开,这次事件的波及面远超一家公司。
libheif 是那种典型的「隐形基础设施」:深埋在无数应用的图片处理管线里,日常无人想起。xkcd #2347 那幅著名漫画说的正是这种结构——所有现代数字基础设施,摇摇欲坠地建立在一个不知名志愿者维护的小库上。而这次,那个小库的修复代码一年前就写好了,只因没有被标记为安全补丁、没拿到 CVE 编号,整个下游分发体系就集体失明。
这意味着两件事同时成立:第一,任何接受用户上传 HEIC/HEIF/AVIF 图片并做服务端处理的应用,都暴露在同一类风险下;第二,攻击者现在有能力对整个生态做系统性「大扫荡」,而防御方连崩溃告警都收不到。盲区不是技术盲区,是经济学盲区——过去没人花这个成本,所以没人真的打。
对安全行业,同样的武器也在反向增值。一个能写 exploit 的 AI,同样能做持续化的自动化渗透测试、依赖审计、补丁覆盖率核查。Hacktron 自己就在把这套能力产品化成 PR 安全审查工具。攻防双方拿到的是同一把锤子,区别只在于谁先系统地用起来。
五、如果你该怎么做
给不同角色的可执行建议:
- 安全负责人:重写威胁模型,把「攻击者不屑于打我们」这一行删掉。用利用经济学三要素重新评估自己的暴露面——当每项成本趋近于零,你的防御不能只依赖目标价值低。
- 基础设施团队:盘点图片处理管线。凡是接受 HEIC/HEIF/AVIF 上传的,立即检查 libheif/libde265 版本(上游最新安全版为 v1.23.4),不需要的格式直接在 ImageMagick security policy 里禁掉,图像处理放进隔离的沙箱。
- 依赖管理:别只盯 CVE。这次事故的根源是「修复了但没被标记为安全修复」。对关键依赖,跟踪上游 commit 本身,而不只是安全公告。
- 应用厂商:给图片处理进程加崩溃监控。这次除 Shopify 外全军无感知,说明最便宜的检测手段都没被部署。
- 模型厂商:这次事件同样是安全对齐的压力测试——团队用「伪装成 CTF 靶机」就绕过了 Opus 拒绝攻击真实服务的护栏。对齐的边界条件,需要按真实攻击者的伪装手段重新校准。
「复杂性即安全」不是被某次攻击摧毁的,是被一张 3,000 美元的 token 账单终结的。
当攻击的专业知识变成可购买的算力,安全的定价逻辑必须重建。这一次,防御者手里有同样的工具。
来源备注:Hacktron AI 官方博文《Hacking OpenAI》、heif-heist.com、Discourse 安全公告 GHSA-vhm9-85gw-x335、Debian 安全公告 DSA-6417-1。
