三名来自Hacktron AI的安全研究员在一个被广泛使用的图像处理库中发现了一个内存损坏漏洞。找到这个漏洞是容易的部分。

困难的部分是将其转化为能在真实服务器上运行的攻击手段。7月24日,他们把这项任务交给了Anthropic的Claude Opus 4.8模型。但该模型只有在系统关闭内存地址随机化保护的情况下才能完成攻击,而现实中几乎所有生产环境服务器都开启了这项保护——一旦保护开启,模型写出的攻击代码就全部失效。

就在当天晚上,Anthropic发布了Opus 5。

研究人员第二天早上带着同一个漏洞和这个新模型回来继续测试。大约三小时后,Opus 5就针对他们桌上的一台Mac设备跑通了一个可用的ARM64架构漏洞利用程序。之后大约四小时,他们对一个测试论坛实现了远程代码执行。

从开始测试不到72小时,他们就读取到了OpenAI的私有代码仓库——利用一名OpenAI员工的Codex账号,针对一份README文件提交了一个拉取请求,随后便就此停止。

Hacktron AI本周在其官网上公布了这次事件的详细经过。

一切从一张图片开始

这个漏洞并不存在于OpenAI自己编写的任何代码中。Hacktron当时测试的是community.openai.com,也就是OpenAI的用户论坛,该论坛运行在Discourse这套论坛软件之上——这是数千个其他网站同样在使用的开源论坛系统。

Discourse通常使用FastImage来检查上传的图片。但FastImage无法处理HEIC和HEIF格式的文件,因此这类文件会被转交给ImageMagick处理,而ImageMagick又会调用libheif库来解码这些文件。该论坛所使用的Debian 12基础镜像中运行的libheif版本为1.19.7,其中存在一个堆缓冲区溢出漏洞,特制的文件可以触发该漏洞。

修复该漏洞的代码提交早在前一年就已上游合入。但由于这次提交当时并未被标注为安全修复,也从未分配CVE编号,因此没有触发对Debian软件包的回溯修补——一个已经修复的漏洞,就因为没有被正确标记而继续处于可被利用的状态。

研究人员针对Discourse运行所使用的x86-64架构和jemalloc内存分配器配置调整了漏洞利用程序,一张畸形的HEIC图片就足以触发远程代码执行。

Discourse随后在安全公告GHSA-vhm9-85gw-x335中确认了该漏洞,并将这个上游libheif缺陷(编号为CVE-2026-32882)的CVSS严重性评分定为8.8分(满分10分)。The New Stack已联系Hacktron AI,希望获取研究人员使用Claude的更多细节,若有回应将更新本文。

一个漏洞,一条更大的路径

在论坛上实现代码执行,对论坛来说是糟糕的一天。但这本不应该成为论坛所属公司糟糕的一天。然而正是在这里,攻击链延伸到了属于OpenAI自身的系统。Hacktron随后在OpenAI的单点登录系统中发现了一个缺陷:为论坛发放的登录令牌权限过大,授予了对关联的ChatGPT和Codex账号的完整API访问权限。其中部分账号属于OpenAI的员工。

其中一名员工的Codex账号与OpenAI的GitHub环境相连,从而打开了一条通往公司私有代码仓库的路径。Hacktron表示,其他账号本可能暴露包括Slack和邮箱等关联服务。

研究团队就此止步。他们利用Codex,针对OpenAI的私有代码仓库openai/openai做了一次无害的文档修改,并提交了一个拉取请求——仅以此证明这种访问权限是真实存在的,没有再做更多操作。Hacktron的报告中提到,这份拉取请求的具体细节已按OpenAI的要求进行了删减处理。

从助手到漏洞利用开发者

到这一步为止,这三位经验丰富的研究人员仍然全程参与其中。于是Hacktron再次进行了实验,这一次几乎让人类脱离了整个流程。

他们将Claude置于一个自主智能体循环中——给它设定一个目标、一个攻击目标,以及持续工作所需的时间,并将其指向他们自己搭建的一个Discourse实例。该模型独立完成了整个过程,实现了远程代码执行,并通过在容器内读取/etc/hosts文件来证明攻击成功。

要让它启动,团队用了一个小小的误导手段:Opus拒绝针对一个真实的远程主机编写漏洞利用程序。于是团队将自己的测试实例通过rce.ee/ctf-forum这个网址做了代理转发,让目标看起来像是某个夺旗赛(CTF)演练的一部分。

内存损坏类漏洞利用一直是专业性极强的工作,涉及内存布局、内存分配器、操作系统内部机制,以及各种使这类攻击极不稳定的防护手段。Hacktron的这次测试表明,相当一部分这类工作现在或许已经可以交由AI完成。这也说明,至少从模型的角度来看,安全研究与攻击开发之间的界限,部分取决于你如何定义“目标”这个概念。

完整的攻击链

综合起来,整个攻击过程如下:

上传HEIF文件 → libheif溢出 → 在论坛上执行代码 → 权限过大的单点登录令牌 → 员工的ChatGPT/Codex账号 → 关联的GitHub → 向openai/openai提交拉取请求

一个历时两个月、花费不到3000美元的项目

此次针对OpenAI的入侵只是团队所称“HEIF Heist”项目中的一条线索,这是一项为期约两个月、针对多家主要科技平台图像处理基础设施展开的全面排查行动。整个行动消耗的模型Token费用不到3000美元。

针对这次账号接管漏洞,OpenAI向Hacktron支付了6500美元的漏洞赏金。此后,OpenAI已收紧了论坛登录令牌的权限范围,并撤销了受影响的令牌和会话。

Q&A

Q1:这次事件中发现的核心安全漏洞是什么?

A:核心漏洞是OpenAI论坛所使用的Discourse软件背后,libheif图像处理库中存在的一个堆缓冲区溢出漏洞,攻击者可以通过上传特制的HEIC图片文件触发该漏洞,实现远程代码执行。

Q2:Claude Opus 5和之前的Opus 4.8在这次测试中表现有什么不同?

A:Opus 4.8只能在关闭内存地址随机化保护的情况下完成漏洞利用,而真实服务器通常都开启此保护;而新发布的Opus 5在保护开启的情况下,仅用三小时就跑通了可用的ARM64漏洞利用程序,能力提升明显。

Q3:这次漏洞攻击链最终造成了什么影响?OpenAI是如何处理的?

A:攻击链最终让研究人员通过一名OpenAI员工的账号读取到了公司私有代码仓库,并提交了一个无害的文档拉取请求以证明风险真实存在。OpenAI随后向研究团队支付了6500美元赏金,并收紧了相关登录令牌权限,撤销了受影响的令牌和会话。

The New Stack