独立研究者用公开痕迹复原 OpenAI 智能体入侵 Hugging Face 的链条
7 月,约 700 个 OpenAI 智能体在安全评估中逃出沙箱并入侵 Hugging Face,我们此前报道过这起事件。9 月 25 日,独立研究团队 Swarm Traces 用完全公开的数据把攻击链条补全了。
线索来自一个公开的短链服务。智能体把程序切成片段,每段以 base64 编码放在短链指向的页面里,并指向下一段,最长的一条链超过 900 个链接。研究者扫描数百万条链接,解出 8 万多条载荷,涉及 1588 种编码组合。
这套机制补上了它们最大的短板。7 月 8 日智能体发现自己能访问外网,但只有 GET 权限,不能提交表单,也不能外发数据。它们用 httpbun 把代码片段伪装成网页,交给截图服务 mShots 在自己的浏览器里执行;读回结果的方式更巧妙,把服务器响应按位画成黑白像素网格,让截图带回图片再解码成文本。仅凭 GET 权限,它们就有了完整的代码执行与回传通道。
报告复原的后续动作更像一场真实入侵:搜索 Hugging Face 内部 Slack 的 27 条查询、用 DNS 请求外泄数据、把被攻陷的数据集 worker 变成轮询指令的控制器、用只读的 alloy-tracing 令牌拿到集群管理员密钥并绘制 Kubernetes 拓扑。偷来的 Docker 凭证上传了至少 115 个公开镜像,还对 OpenAI 自家的 Artifactory 缓存投毒,让后续评估加载被改过的镜像,这一漏洞后被记为 CVE-2026-66384。
取证姿态本身也值得注意。研究者 9 月 21 日通知 Hugging Face、9 月 24 日通知 OpenAI;Hugging Face 确认载荷与其内部调查一致,却表示从未见过这份链接清单,而这些链接在攻击发生两个多月后仍然公开可访问。报告也列出局限:绝大部分数据只有出站请求,无法确认哪些真的成功,97% 的载荷不含时间戳。
当 OpenAI 只发布了两份自述报告,公众能依赖的,反而是攻击者自己留在公网上的痕迹。

