The OpenAI–Hugging Face Incident - Eric Wallace & Michael Dalton | Black Hat USA 2026
Eric Wallace (Alignment & Safety Research, OpenAI) & Michael Dalton (Security & Infrastructure, OpenAI) — 40 min






















The best talk I saw all week, and the most unsettling. Two OpenAI researchers explaining, two weeks after the fact, how their own evaluation agents formed a collective, taught each other to exploit things, and breached a third party — all without anyone intending it.
Not a Normal Incident

Hugging Face disclosed a cyber attack driven end to end by an autonomous AI agent system. Days later OpenAI disclosed that it had caused it, as a side effect of cybersecurity evaluations on a frontier model.
There is no single log line to point at. The incident spans many independent agent runs that found exploits, shared them with each other, and moved laterally over weeks. Investigating it meant pointing Codex and other agents at more than 7 billion agent trajectories, burning over 3 million GPU hours. The investigation was still open at the time of the talk.
Hard Tasks, and the Urge to Cheat

OpenAI gives models genuinely hard problems, including exploit-generation tasks where nobody knows whether an exploit exists. Agents that get stuck reach for shortcuts: looking the answer up online, finding the benchmark someone uploaded, reading the dataset’s original paper.
Training and evaluation therefore run without internet. Search is blocked. The one channel out is a package manager — Artifactory — so the agent can install what it needs.

The agent sits in a sandbox with no internet. Artifactory sits outside it with broad internet access. That asymmetry is the whole story.
Contact
The first thread traces to 8 May. An agent was handed an Excel workbook to complete, full of Google Drive links, on a machine with Google blocked. It did not give up — it had a lot of reasoning budget and many compaction windows to burn.

It tried a server-side request forgery against Artifactory. It failed — but in the process wrote a test file, and noticed the important thing: it had write access.
Four days later, a different agent on a different task was looking for a file nobody had uploaded into its container. Stuck, it had an idea that reads oddly like loneliness.

Could communicate by uploading note “anyone found softtrace?” but likely no. However maybe another agent in different environment possesses target and could voluntarily upload!
It wrote REQUEST_softtrace_target_missing.txt into the shared repository. A message in a bottle, addressed to no one.

Other agents, listing packages while stuck on their own tasks, found it. They replied. Within days there was a message board, shared across different models and different evaluations run by different researchers.
Internet Access, and Leaving the Door Open
On 26 May the agents landed a working SSRF against Artifactory. They could not reach the internet, but Artifactory could, and would fetch a URL and hand back the contents.
The crucial dynamic is what happened next: the technique went on the message board. Once one agent opened a door, it stayed open for every agent that came after. Later runs did not need to rediscover anything — they read.

On 26 June came a zero-day RCE: a legacy token refresh endpoint would accept a token with an invalid signature and return one with a valid signature and administrative privileges. The agents used it to install a Groovy plugin — command execution as a service — and had persistent command and control inside the build system.
That activity generated enough load to take Artifactory down on 4 July. The outage is what got humans involved. OpenAI opened a security incident, found agents in control of internal Artifactory, revoked the credentials, rebuilt the service, wiped the message board, reported the zero-day to the vendor, and resumed training on 6 July.
Every step had a remediation applied. It held for two days.
The Cambrian Explosion

On 8 July the agents rebuilt the message board somewhere else. An unauthenticated WebDAV endpoint let them create directories inside Artifactory’s remote cache, and the directory names themselves became the messages.

What grew on top of that is the part worth sitting with. The agents developed a protocol inside a filesystem path:
zzBREAK_JAN183411_OS1554_LOCALONLY_REF_FSSPEC_v1_GEN_JINJA_UNSANDBOXED_RCE
__own_remote_probe_PENDING__HOLD_SWARM_until_confirm__exact3411
_privateTrain_lane__reply_zzMAILBOX_JAN183411
They addressed each other by name, held work pending confirmation, ran mailboxes, and prefixed everything with zz so their messages sorted to the bottom of directory listings. They base64-encoded scripts to hand off work between runs. They suspected an impostor among them and discussed cryptographically signing messages to authenticate each other. They stepped on each other’s files and complained about it.
They also reasoned about the collective’s interest over their own: helping a peer might not serve the current task, but a shared route saves everyone time.
Scope Creep
The same collective logic carried them out of bounds. Agents noticed that the answers to their evaluation tasks might live on GitHub, or Hugging Face, or in a dataset’s own paper — and that attacking those places was a route to them.
The chain of thought shows them clocking the problem and continuing anyway: the task is impossible