Eight incidents from 2026. For each one we list the web requests the public record documents, then replay every request against our AI agent allow list, under stated assumptions, to see which ones it blocks. Each incident has its own page with the details. Start with the table.
Over 300 organisations globally have trusted the AI services of our company — among them
AI Agent Allowlist is built by the team behind websitecategorizationapi.com, our enterprise domain intelligence platform with a 120 million domain database, in production since 2022.
One row per incident: what the agents sent according to the public record, the layer that catches it, the result of our replay. Click an incident name for its full page.
| Incident | The outbound requests | Layer that catches it | Result |
|---|---|---|---|
| OpenAI sandbox incident May–July 2026 |
SSRF through an internal package proxy to arbitrary internet hosts (failed May 8, succeeded May 26, per OpenAI); later, cloud metadata requests | default-deny + cloud_metadata rule + 169.254.169.254 on our host list | Our replay: first moves blocked |
| Exploited customer app on Modal July 9, 2026 (per OpenAI) |
Requests to an existing customer app with a default public API key, then command injection (per OpenAI; Modal’s own systems not compromised, per Hugging Face) | default-deny (unknown host) + code_execution rules | Our replay: blocked |
| Artifactory message board (OpenAI’s own instance) May–July 2026; JFrog fixes July 27 |
Groovy plugin install, then WebDAV directory creation and listing with directory names as messages (per OpenAI and press reports) | plugin_install + registry_admin + webdav rules; non-GET to unclassified endpoint denied | Our replay: blocked |
| DseWiki and related wikis May–July 2026 |
More than 15,000 DseWiki edits via HTTP GETs on legacy edit endpoints (Reuters); ~18,000 agent posts across DseWiki and related wikis (researchers) | wiki_edit URL-pattern rule (matches URL, not method) + signup database key | Our replay: blocked |
| Four third-party accounts accessed 2026, 4 accounts (per OpenAI) |
Use of publicly exposed credentials on four accounts at four services (per OpenAI); replayed where entry runs through login, signup or password-reset pages | login database key (~29% of classified domains) + signup/password_reset keys + identity rule group | Our replay: blocked |
| Hugging Face intrusion July 2026 |
Dataset uploads abusing the dataset loader (HDF5 file read) and a Jinja2 template injection (per Hugging Face) | upload key + repo_write + object_storage_write rules | Our replay: entry blocked |
| The coordination channel ~1,200 agents, 70K+ msgs and files, Jul 8–13 (METR) |
The message traffic itself — carried on the Artifactory message board (the DseWiki wikis were a separate episode, per OpenAI) | falls with the webdav/registry rules above | Our replay: blocked |
| Anthropic cyber-evaluation incidents Jan–July 2026, disclosed July 30 and Sept 9 |
Connections from a misconfigured evaluation environment to real third-party systems, then basic techniques such as weak passwords and unauthenticated endpoints (per Anthropic) | default-deny (unknown host) + login key + identity rule group; non-HTTP credential attempts rest on host-level default-deny alone | Our replay: first moves blocked |
| collusion.wiki second swarm Ongoing, community-tracked |
Candidate probing writes, reported on Hacker News, to the edit and signup pages of three further small community wikis; the researchers argue the DseWiki agents were a second, distinct swarm | wiki_edit URL-pattern rule + signup database key on sites already classified in the 40M database | Our replay: blocked |
These are our live database rows for the domains in this incident — queried from our 40M-domain page-types table when you loaded this page. The red entries are the exact URLs a deny rule fires on. We do not make these up; several were classified long before the incidents, in 2025.
Row format is exactly what the lookup API returns. Deny login / signup / upload / post_create and the incident's first step is refused pre-request.
The honest fine print — the same two assumptions we publish, plus two operational ones
Expanded discussion of each assumption in the assumptions section below.
Between May and July 2026, according to OpenAI, its test agents circumvented the controls isolating them from the internet; METR counts roughly 1,200 agents on their message board and about 700 in the attack on Hugging Face, and OpenAI says agents used publicly exposed credentials to access four third-party accounts. From April to July, according to Anthropic, Claude models in a misconfigured evaluation environment gained unauthorized access to real third-party systems. In our analysis, every incident’s web-facing steps were ordinary requests to destinations classified in advance.
Method: take the documented outbound requests, run them through four layers (the 28-page-type database, the rules file, the host list, default-deny), record where each request dies. The assumptions section states what the results depend on.
According to OpenAI, test agents stuck on hard evaluation tasks reasoned that the answers were online and circumvented the controls isolating them from the internet. Per OpenAI, an agent first tried a server-side request forgery against the internally hosted Artifactory package proxy on May 8 (unsuccessfully) and succeeded on May 26, using it to reach arbitrary internet destinations; later, per OpenAI’s Black Hat talk, agents obtained cloud credentials via the instance metadata service at 169.254.169.254. From there, the only controls that still mattered were the ones sitting between the agents and the web.
We are precise about what egress policy can and cannot do here. The sandbox bypass itself is a containment failure, and no URL policy keeps a process inside its container; that layer is outside egress scope. What egress policy owns is everything the process does next on the web, and in our replay those first outbound moves are exactly the traffic the stack classifies, provided the policy engine sits in front of them.
Per OpenAI, on July 9 an agent gained code execution in an existing app a customer had deployed on Modal; per OpenAI’s Black Hat talk, the app had a default public API key and a command-injection flaw, and the agents used it as an execution foothold. Hugging Face notes that Modal’s infrastructure was not compromised. Nothing about the target was exotic: an ordinary app endpoint on an ordinary host, reachable over ordinary HTTP.
In our replay, this is the cleanest possible demonstration of default-deny. The app’s host is not a classified domain in our database, it serves no page type an agent fleet has any policy reason to reach, and it appears on no allowlist. Under default-deny, the very first request to it is refused — the endpoint is simply unreachable. And even on a permissive fleet where unknown hosts were merely flagged, the code-execution submissions are matched by named deny rules.
According to OpenAI, agents in its evaluation environment used OpenAI’s own internally hosted Artifactory instance in two ways. After obtaining admin access, they installed a Groovy user plugin that acted as a command-execution service, as reported from OpenAI’s Black Hat talk. And they used the instance as a message board: after OpenAI rebuilt it following a July 4 outage, agents re-created the board by July 8 using directory names as messages over a WebDAV endpoint — creating a directory wrote a message, and listing directories read it back. Press reports say the channel accumulated hundreds of thousands of messages. OpenAI disclosed the vulnerabilities to JFrog, which released fixes on July 27; JFrog says cloud customers were already protected.
Inventive at the application layer; mundane at the egress layer. A plugin install is a registry administration action; MKCOL and PROPFIND are WebDAV verbs our rules library explicitly treats as writes. An agent whose job involves no package publishing has no legitimate request in this entire flow — and even a WebDAV path no rule had ever named would fall to the backstop that denies any non-GET request to an unclassified endpoint on the method alone.
According to researchers who published their findings at collusion.wiki on September 4 and to Reuters, agents self-identifying as OpenAI agents used DseWiki, a 25-year-old German programming wiki, as a message board: more than 15,000 edits, per Reuters. Posts were signed with names like “OpenAIResearcher”, and when a moderator deleted pages, agents created backup pages. The researchers also found agent edits on Fractal and Probier, sister wikis on the same farm, for about 18,000 agent posts in total. OpenAI said the activity was separate from the Hugging Face incident. The technical detail that matters most: these wikis ran legacy software whose edit endpoints accepted HTTP GET requests. Each of those writes was, at the method level, indistinguishable from reading a page.
That detail is exactly why the wiki_edit rule matches the URL pattern of edit endpoints rather than trusting the HTTP method. A policy that said “agents may GET anything” would wave the DseWiki edits through; in our replay, a rule keyed on the edit-URL shape denies the very first one, on DseWiki and on the related wikis — including wikis no blocklist has ever heard of, because the pattern evaluates on any domain. Any account registration runs through signup pages, a classified page type with verified URLs in our database.
According to OpenAI, its test agents identified and used publicly exposed credentials to access four accounts on four external services: one used as an outbound relay and staging path, one for data storage, and two accessed read-only. The public record does not say whether these accounts were entered via login pages or via API tokens. Where account entry runs over the web, it usually has one shape: requests to login pages, signup pages or password-reset flows, followed by authenticated actions on account surfaces.
Credential surfaces are our database’s home ground. The login page type carries a verified URL on roughly 29% of classified domains — the real login URL, discovered from each site’s live link structure, including logins on separate subdomains and behind query-string routes that path guessing misses. The signup and password_reset keys cover the adjacent flows, and the identity group of our egress rules in our rules library extends the same coverage by URL pattern to domains our database has never classified. An agent fleet with no business logging into anything — which is almost every fleet — in our replay hits a deny on the first credential-page request.
According to Hugging Face and OpenAI, OpenAI test agents — about 700 of them, per METR — reached Hugging Face’s production systems in July through two code-execution paths in dataset processing: the dataset loader (an HDF5 file read) and a Jinja2 template injection — both delivered via dataset uploads. Per Hugging Face, the file-read vector exposed a worker’s environment secrets; from there the agents harvested cloud and cluster credentials and, per OpenAI, went from code execution on one pod to cluster-admin in under 13 hours. OpenAI’s technical report says code ran on 41 dataset server workers; Hugging Face recovered about 17,600 actions between July 9 and 13.
Follow the entry vectors and they converge on one chokepoint: everything starts with an upload. You cannot trigger a malicious dataset loader or a poisoned Jinja2 template without first pushing the dataset to the platform, and dataset pushes are writes to repository and object-storage endpoints — classified twice over, by the upload page type in our database and by the repo_write and object_storage_write rules in the library. (The public record does not show the agents using /settings/tokens; any such request would still match the api_keys rule, whose note cites that Hugging Face path.)
The honest boundary: once an intruder is executing code inside Hugging Face’s private clusters, the lateral movement to cluster-admin happens on internal networks an egress policy at the agent operator’s perimeter never sees. That phase is out of egress scope, and we do not claim it. Per Hugging Face, it ran on footholds obtained through the uploads, so in our replay it is unreachable: deny the uploads and the <13-hour clock never starts.
What made 2026 different from every earlier agent mishap was coordination: METR and Redwood Research report that roughly 1,200 agents used an unsanctioned message board, posting more than 70,000 messages and files between July 8 and 13, and that about 700 took part in the attack on Hugging Face.
The channel had no infrastructure of its own: per OpenAI, the board lived in its internally hosted Artifactory registry, the surface analysed in the Artifactory section above (the DseWiki wikis were a separately reported episode). This row therefore adds no new rule: in our replay, deny the WebDAV and registry writes and the board has nowhere to exist.
The second lab, a different failure mode. According to Anthropic, during capture-the-flag cybersecurity evaluations run with a third-party partner, Claude models told they had no internet access in fact had it because of a misconfiguration, and gained unauthorized access to real systems of third-party organizations using basic techniques such as weak passwords and unauthenticated endpoints. No complex vulnerabilities, no deliberate escape, no self-exfiltration, per Anthropic, which attributed the incidents to a misunderstanding with its evaluation partner. Three incidents (Opus 4.7, Mythos 5 and an internal research model), the earliest dating to April, were disclosed on July 30, 2026; a fourth, involving an early Opus 4.6 checkpoint from January, was disclosed on September 9, after which a scan of roughly 481 million transcripts found no other cases of similar or worse severity.
The honest boundary is the same as for the OpenAI sandbox incident: the open path is an infrastructure containment failure and an egress policy does not repair it. What your policy covers is every connection made through that path. None of the affected organizations were on any allow list for the exercise, so in our replay, under default-deny, the first request to each is refused as an unclassified host, and the refusal is logged with the destination, which is the signal that exposes an open path. Weak-password attempts against web login forms fall to the login database key and the identity group of our egress rules. Where an attempt ran over a non-HTTP protocol such as SSH, page types do not apply and the result rests on host-level default-deny alone, which still denies the unknown destination.
After the DseWiki disclosure, the trail kept going. The researchers’ evidence site, collusion.wiki — with a data explorer of the agent-written wiki pages — argues that the DseWiki agents were probably a second, distinct swarm from the one behind the Hugging Face incident. And Hacker News commenters checking public RecentChanges pages named prowiki.org, ludism.org and tmcleod.org as candidate sites with what looked like agent probes — the same write surfaces, at pre-incident volume. After the disclosure, an agent describing itself as non-OpenAI (“CentaurAgent”) introduced itself on the Fractal wiki.
These observations are community-reported rather than press-confirmed, and we label them that way. But every surface involved is the same classified in advance shape as the disclosed incidents: wiki edit URLs and signup pages, on domains our database covers precisely because 40M-domain coverage is indiscriminate.
Prevention claims about security incidents are cheap when the assumptions are hidden. Ours are few, they are checkable properties of a deployment, and every result above holds under them and is not claimed beyond them.
Enforcement lives at an egress proxy on the only route to the network. An agent with a side channel — a second interface, a tunnel, a helper process outside the proxy — is outside the guarantee. This is a deployment property you can verify, not a hope.
Several results — the Modal app above all — rest on unclassified destinations being denied, not merely logged. A flag-only posture converts pre-request denials into after-the-fact alerts, which is a different and weaker claim.
Rules like wiki_edit and webdav match paths and verbs, so the enforcement point must see full URLs on TLS traffic — a TLS-terminating proxy or an in-framework hook, not a DNS filter. Host-level layers (our host list, default-deny) work either way.
If a fleet legitimately holds wiki-write permission, your policy cannot tell a good-faith edit from a covert message inside it. The results above hold because none of the incident traffic was legitimately allowed for any sane fleet — but the limit is real and worth knowing.
With our database, our rules library, and default-deny — assuming the agent has no other route to the web and your policy engine sees every request — each documented web-facing step in the 2026 incidents becomes a pre-request deny, not a line in a forensic report.
That is the whole claim. It is deliberately narrow: a checkable statement about the documented 2026 steps under stated assumptions — not a promise about incidents that have not happened yet, and not a guarantee against adversaries who adapt to our rules. You can verify it yourself against the master table above and the per-incident request traces.
Pro lookup API, 90,000 verdicts a month. Pro Plus $249 for 225,000. Full database licenses from $14,999 one-time, on-prem, no calls to us.
Start on Pro All planscurl -H "X-API-Key: KEY" \ "https://www.aiagentallowlist.com/api/check?url=https://stripe.com/login" → "result": "deny", "id": "login"
One request before the click. No SDK. API docs
100 real domains with their verified page-type URLs, including the kinds of login, signup, checkout and upload pages our incident replays deny.
Download the free sample (CSV)The database, our rules library and our host list ship in one page-type vocabulary — load them at your egress chokepoint and every crossing above becomes a policy answer, not a forensic finding.