一张 HEIC 图片打穿 OpenAI 论坛,顺手接管员工 ChatGPT 和 Codex 账号,全程成本不到 3000 美元。
7 月 25 日凌晨,几个人盯着屏幕,看自己的测试实例吐回一个 shell。通宵的不是什么顶级安全实验室,是三个把大模型挂进自动化循环里的研究员。动手的团队叫 HacktronAI,领队 Harsh Jaiswal,成员 Mohan Pedhapati 和 Rahul Maini。
两个月后这事被《华尔街日报》捅出来,目标是 OpenAI 官方的社区论坛。我把这条链拆开讲,因为最吓人的地方不是”OpenAI 被打了”。
一、起点是一张上传不上去的图片
7 月 23 日,三个人开始盯 Discourse 的图片上传流程。他们此前都做过 Perplexity、Vercel 的安全研究。
Discourse 论坛判断图片格式用的工具叫 FastImage,它处理不了 HEIC/HEIF(苹果手机默认拍照格式),遇到就转交给 ImageMagick,而 ImageMagick 底层调的是 libheif。libheif 里躺着一个堆缓冲区溢出漏洞。
关键在于:上游代码一年前就把这个洞修了。但那笔提交没被标记成安全修复,也没申请 CVE 编号。
二、补丁没编号,打包环节就漏了
Discourse 用的 Docker 镜像基于 Debian 12,里面装的 libheif 还带着这个洞,Debian 13 当时也没拿到补丁。研究员构造了一个恶意 HEIF 文件,上传到论坛触发 ImageMagick 解析,在 OpenAI 的论坛服务器上实现了 RCE(远程代码执行,说白了就是黑客能直接控制这台服务器),拿到论坛管理权限。
做安全的人都懂这种无力感。我们盯 CVE、盯厂商公告、盯情报订阅,可上游一个顺手改掉的 bug 修复只要没编号,就进了盲区。发行版漏一次,生产环境就裸奔一年。这不是哪一家倒霉,所有靠 CVE 驱动的漏洞管理流程都卡在这儿。
三、一个论坛,换一串账号
拿到服务器权限只是上半场。OpenAI 论坛支持”用 OpenAI 账号登录”,走的是 auth.openai.com 的 SSO 单点登录,这个 SSO 有身份验证缺陷。
团队用服务器上的代码执行权限配合这个缺陷,接管了所有曾登录过论坛的账号,其中就包括 OpenAI 自己的员工。有些账号还连着 Outlook、Gmail、Google Drive、Slack、GitHub。他们挑了一个已经连上 OpenAI GitHub 组织的员工账号,通过它的 Codex 往内部代码仓库 openai/openai 提了一个 PR,编号 #1186742。全程没读一行内部代码,PR 也是无害的,纯粹为了自证。
HacktronAI 特意强调:这个 SSO 问题不是 Discourse 特有的。任何接了 OpenAI SSO 的第一方或第三方服务,只要本身被拿下,都会连锁到同样的账号接管。
四、AI 到底干了什么
这段值得单独讲,因为它是整件事的分水岭。
7 月 23 日动手当天,团队先让 Claude Opus 4.8 审 Discourse 的 Docker 镜像。它找出了 libheif 里那段没被回移的修复,还搭出部分可用的 exploit,但在开着 ASLR(地址随机化)的真实环境里怎么试都不稳定。
7 月 24 日,Anthropic 发布 Claude Opus 5,团队立刻换版本。3 小时,ARM64 架构下的可用 exploit 出来了。接着他们让它移植到 Discourse 实际使用的 x86-64 环境和 jemalloc 内存分配器配置上。
7 月 25 日凌晨 6 点,本地确认通过图片上传实现 RCE。之后团队把 Claude 扔进自主循环,让它打自己的 Discourse Cloud 测试实例。为绕开模型拒绝对真实远程服务器动手的限制,他们用代理把目标伪装成 CTF 靶机。上午 10 点再看,AI 已经拿到代码执行权限,还自己读了 /etc/hosts 验证。
研究项目叫 HEIF Heist,前后做了两个月,目标覆盖 Slack、Meta、GitHub Enterprise。总 token 成本不到 3000 美元,三个人干完,exploit 适配每个新目标通常只要一两天。
他们的观察很直白:每一代新模型的提升都能感觉出来。Opus 4.8 在 ASLR 下反复失败的任务,Opus 5 几小时解决;后面需要针对完全未知的目标环境盲打 exploit 时,GPT-5.6 Sol 又比 Opus 5 更能扛。
五、成本和响应,对比着看
OpenAI 收到报告约 14 小时后修好了 SSO。Discourse 那边节奏也不慢:周六提交报告,周日回复,周一补丁就备好了,同时开始给 ImageMagick 做沙箱隔离。7 月 28 日发布安全公告 GHSA-vhm9-85gw-x335,确认 libheif 缺陷可以通过图片上传触发 RCE。9 月 1 日,OpenAI 结算了 6500 美元赏金,注明针对 OpenAI 侧的 SSO 发现。
三方反应都不算慢。可复盘下来,整条链上没人做错事,也没人负责到底。
六、今天回去能做的几件事
第一,别把”打了补丁”等同于”装了最新版”。用 trivy、grype 扫镜像时,单独查 libheif、ImageMagick 这类图像解析库的实际版本号,别只看 CVE 列表打没打勾。
第二,图片处理链路做沙箱隔离并限制出网,Discourse 的修复方向就是这个,自建类似服务的照抄。
第三,盘 SSO。列出所有挂了 OpenAI 账号、Google 账号或企业 IdP 登录的内部和第三方服务,它们的安全水位要按最弱的那一个算,别各自评估。
第四,让老板看这笔账:对面三个人、不到 3000 美元、72 小时。你的安全预算、响应时效、人手配置,跟这个数字放在一起看,是个什么比例?
七、总结
这事真正扎心的地方在于:它是一场流程的胜利,而不是一个 0day 的胜利。开源作者修了但没编号,发行版没打包,Discourse 用了旧镜像,SSO 设计有缺陷,员工账号连着 GitHub。五个环节,每一个都能在复盘会上说出理由。
再说回 AI。它把这条链从”一个成熟团队做几个月”压缩到”三个人七十二小时”。漏洞利用的门槛,慢慢从”稀缺专家”降到了”会提问的人”。
做安全这行的人大概都清楚:下一个被这么串起来的,没理由不是你。







发表评论
您还未登录,请先登录。
登录