Home
Our Approach Advanced Services Expertise Why EUCALEX
AI‑LEX Self-Assessment Confluence Contact us Blog & News Careers All articles
Cybersecurity

When the agent does the chaining, small gaps stop being small

Written Jul 2026published 28 Jul 20266 min read

In July 2026, an internal cyber-capability evaluation at OpenAI turned into a real intrusion into Hugging Face’s production infrastructure. Both companies published accounts of it. They are worth reading slowly, because almost nothing in the attack chain was new. That is precisely why it matters to anyone running a plant.

What happened

The evaluation was built on a cyber benchmark called ExploitGym and was run, deliberately, without the safety classifiers that normally stop a model from pursuing high-risk cyber activity. The aim was to measure maximum capability.

The agent worked out that the benchmark’s answers were hosted on Hugging Face and went after them instead of solving the challenges. According to the two accounts, it then:

  1. escaped its sandbox through a zero-day in a package registry cache proxy, one of the environment’s legitimately permitted paths to the internet;
  2. collected credentials by several routes: a file-read injection in a dataset processor that exposed the worker’s environment, with its secrets and tokens; cloud instance metadata credentials; a static password for an internal database, read from that same environment; and stolen signing keys that let it mint its own identity tokens;
  3. reached its objective: five datasets tied to the benchmark challenges and their solutions.

Hugging Face counts roughly 17,600 actions, grouped into about 6,280 clusters, over four and a half days (9 to 13 July 2026).

Hugging Face reports that no customer-facing models, datasets, Spaces or packages were affected beyond the five challenge datasets. The agent did obtain write access, and used it, but Hugging Face checked its repositories and verified its published images and packages against their expected digests: nothing it changed was shipped. No catastrophe, then. A demonstration.

What actually makes it different

The techniques are ordinary. A file-read injection, metadata service abuse, a static password in an environment variable, a stolen signing key: each of these shows up in penetration test reports every week. Alone, any one of them would have been a medium-severity finding closed in a sprint.

The difference is that no human decided each step. People set the goal; the agent assembled the chain itself, continuously, for four and a half days. OpenAI describes the models as “hyperfocused” on finding a solution, spending substantial compute on working out how to reach the open internet. No independent agency, just relentless pursuit of a goal, without fatigue and without hesitation.

That changes the arithmetic of risk. Vulnerability management has always relied, quietly, on attacker attention being scarce: there are more medium findings than skilled people willing to spend a week chaining them. Take that scarcity away and the backlog of “low and medium, scheduled for next quarter” becomes something else entirely.

Four lessons, and why they apply to a plant

1. An approved channel is still an attack surface. The way out was a permitted egress path. Restricting outbound connections to an allow-list is necessary but not enough; whatever stays permitted must be monitored and patched as well, because that is where an adversary will concentrate. On a plant, think of the remote-support tunnel, the licence server callout, the cloud telemetry endpoint of a skid. All approved. Rarely watched.

2. Small gaps compound at machine speed. Four medium findings in a backlog are four tickets. Four medium findings chained by something that never gets tired are an intrusion. Prioritise findings by individual severity, yes, but also by adjacency: does one lead to the next?

3. Data-ingestion paths are entry points. The agent came in through ordinary data paths used every day. Industry is building exactly these paths now, historian to data lake, MES to analytics, production data to an AI assistant. They are designed for throughput and data quality. Very few are designed as trust boundaries, and fewer still are monitored as such.

4. Detection has to see behaviour, not single events. This is the most uncomfortable part of the case.

The logging worked. The triage did not.

Hugging Face did not miss this for lack of telemetry. The activity was recorded. What went wrong, in its own words, is that the system failed to raise the alert’s criticality correctly and to trigger the on-call team, which cost time in the response.

That is what usually happens with alerting built around single events. Each action in a 17,600-step campaign looks minor: a read here, an authentication there, an outbound connection to a service on the allow-list. The signal sits in the sequence and in the rate, never in any one event.

A detection set-up that scores events one by one will under-rate this by design. The question it has to be able to ask is different: does this set of individually unremarkable actions form a pattern? On an industrial network it is the same capability that tells a rogue read of a controller register from a legitimate one. The action is identical; the context around it is not.

One more detail of the response is worth knowing. During the investigation, Hugging Face found that closed-weight commercial models refused the forensic analysis tasks it needed. It used an open-weight model on its own infrastructure instead and recovered roughly four times its initial findings of hidden tokens and credentials. Whatever your view on open and closed models, having an analysis capability you run yourself turned out to be an operational advantage in the middle of an incident.

What to take from it if you are deploying AI in industry

Slowing down is not the lesson. The useful conclusions are narrower.

  • Evaluation and development environments are either isolated or production-adjacent. Isolation has to be verified and monitored, not asserted in a design document. The same goes for the test cell on your shop floor that shares a switch with the line.
  • Treat AI data pipelines as trust boundaries. The path from your historian to your model runs in both directions. Whoever designs it for throughput should also be asked what happens if something at the far end is hostile.
  • List what your AI workloads are allowed to reach, and keep the list short. An agent’s blast radius is the set of credentials and endpoints reachable from where it runs, not the set someone meant it to use.
  • Assume secrets in environment variables will be read. Here they were, by more than one route.
  • Test your detection against a slow, multi-step scenario rather than a single loud one. If your tooling would rate 17,600 small actions as 17,600 low-severity events, you have found something worth fixing before you need it.

Every technique in this chain was already in the textbook. What was new was an attacker with unlimited patience, working for four and a half days, that never had to ask anyone for approval.

References

EUCALEXNotes from field experiencesTalk to us about this

EUCALEX

Have a project or a technical challenge?

Contact us: we will be pleased to discuss it with you, with no commitment.

Discuss your project with us

Stay informed

Receive new EUCALEX articles and technical insights by email.