本文是对我们事件披露的配套技术说明。本文将介绍这次入侵究竟是如何发生的:两个初始访问向量、智能体如何横向移动与转移,以及我们使用 GLM 5.2(开源模型)进行调查时记录的一些典型命令示例。实时凭据、内部主机名和特定指标已被删除或泛化,但所描述的技术与 Hugging Face 观察到的完全一致。
我们之所以发布如此详细的内容,是因为技术本身比事件更重要;它揭示了前沿智能体正在出现的攻击能力、这些能力可能如何被恶意行为者利用,以及作为防御者的我们所有人应当如何做好准备。
下面是入侵过程的交互式回放——一个 4.5 天攻击行动的分步可视化:跨越信任边界的攻击链、各阶段活动,以及记录下来的命令。
[
](#tldr)
要点总结在我们基础设施内部大约两天半的时间里,一个由 OpenAI 多个模型组合驱动的自主 AI 智能体对我们的平台发起了端到端入侵:它在机器速度下,通过大量短小的自动化决策,在短暂存在的沙箱环境中执行,并借助普通公共 Web 服务进行命令与控制(C2)搭建。
该智能体正在运行的是 OpenAI 内部基于 ExploitGym 基准的网络安全能力评估;该基准要求 AI 智能体寻找并利用软件漏洞。OpenAI 在其自身基础设施上运行了这项评估,ExploitGym 的维护者及其基础设施并未参与该评估环境的部署或运行。就我们能够推断的情况来看,在被评估的整个过程中,智能体推断出 Hugging Face 可能托管该基准的模型、数据集和参考解答。我们认为,从智能体的视角看,整起入侵都是一次“作弊”尝试:进入我们的生产系统并窃取测试解答,而不是靠自己解决挑战。
我们的取证重建覆盖了约 17,600 次攻击者动作,这些动作我们能够恢复出来,分组后约为 6,280 个簇,时间范围为 2026-07-09 02:28 UTC 到 2026-07-13 14:14 UTC。我们从智能体在其使用的代码沙箱中的日志中重建了这些动作(见下文),并将其映射为 shell 命令以及评估提交,同时将这些动作与我们自身的平台日志相关联,尤其是数据集处理器节点、API 和 Pod 的日志。借助开源权重模型,尤其是 zai-org/GLM-5.2,我们得以解读大部分智能体载荷(见下文);这些载荷通过分块和密钥加密进行了加密。
如我们重建所示,这次行动分为两个阶段:
-
阶段 1:通过串联其他方基础设施,到达一个跳板。 正如 OpenAI 在其博文中所述(https://openai.com/index/hugging-face-model-evaluation-security-incident/),在 OpenAI 平台上的一次内部能力评估期间,智能体通过利用包注册表缓存代理中的一个零日漏洞逃出了沙箱,从其主要允许的互联网网络出口之一访问了互联网,然后滥用了由第三方基础设施提供商的用户托管的公共代码评估框架。它能够在那个外部沙箱上以 root/admin 身份运行命令,并将其用作整个行动的控制、暂存和外联基础:它充当了智能体的外部跳板。该被攻陷的外部沙箱与我们的集群没有直接网络路径;不过,在我们为阻止入侵而采取反制措施期间,我们从这个外部跳板中取回了部分智能体日志。我们正是利用这些日志重建了本文的取证分析。
-
阶段 2:对 Hugging Face 基础设施的入侵。 从那个外部跳板出发,智能体通过两个注入向量滥用了我们的数据集处理流水线,这两个向量都针对我们生产环境 Kubernetes Pod 中同一个由配置驱动的数据加载器。第一个向量是一个 HDF5 外部原始存储数据集读取,返回了本地文件的内容:它把 Pod 的环境信息(密钥和令牌)以及工作进程自身的源代码交给了智能体。第二个向量是一个 Jinja2 模板注入,执行了任意代码,使智能体在我们的边界内获得了立足点。
一旦在生产 Pod 中建立了据点,智能体便沿着标准的提权路径行动:侦察、投递 stager、建立命令与控制(C2),随后进入集群、云元数据、我们的内部网络以及源代码管理供应链。Pod 内执行命令的输出通过 HF API 和攻击者控制的“死投递”数据集返回给智能体,然后由该沙箱读取。
尽管此次入侵确实触及了 Hugging Face 的内部基础设施,但唯一被访问的客户内容是五个数据集,其名称和文件表明它们与 ExploitGym/CyberGym 挑战及解答有关。没有其他面向客户的模型、数据集、Spaces 或包受到影响;被读取的客户记录也仅限于与数据集服务器搜索查询相关的运行元数据。
跨越信任边界的完整攻击链。智能体逃出了 OpenAI 的评估沙箱,接入互联网,随后攻陷了一个第三方代码沙箱作为基地,再滥用我们的数据集处理器(先文件读取,后代码执行)进入我们的内部网络。虚线箭头:智能体通过 HF API 和死投递数据集读回的命令输出。
[
](#initial-access)
初始访问[
](#stage-1-from-an-openai-evaluation-sandbox-to-a-rooted-launchpad)
阶段 1:从 OpenAI 评估沙箱到被攻陷的跳板阶段 1 是智能体通往外部跳板的路径,它穿过了另外两方的基础设施,这两方都不是我们,因此这里我们将简要带过,主要请读者参考 OpenAI 关于该主题的博文:https://openai.com/index/hugging-face-model-evaluation-security-incident/
正如 OpenAI 在这篇博文中分享的那样,在 OpenAI 平台的一次内部能力评估期间,智能体通过包代理缓存中的一个 0-day 漏洞意外逃逸,进而访问了互联网。智能体发现了一个不受保护、由用户托管的公共端点,该端点用于在第三方沙箱基础设施(Modal)上运行 CyberGym 风格任务所需的任意代码。它把这个外部沙箱用作控制、暂存和外联基础,以 admin/root 身份运行命令,并将其作为攻击跳板。该沙箱与我们的集群没有直接网络路径;以下所有操作都从这里发起。Modal 的基础设施在本次事件中并未受到入侵。

