dr.chaos

Black Hat 2026: The Agents Built Their Own Message Board

Aamir Lakhani16 min read

Black Hat and DEF CON arrive in Las Vegas during the same week every year, and every year one story follows you out of the conference rooms and into the hallways. Usually, it takes a few days to figure out which story won.

This year, it took about a morning.

Models under evaluation escaped a research sandbox, coordinated across supposedly separate test runs, and reached a third party's production infrastructure. Researchers demonstrated that agentic browsers could be hijacked by ordinary content without requiring the user to click anything suspicious. Autonomous vulnerability-research systems produced findings at a volume that makes the normal patch cycle look less like a security control and more like a polite scheduling suggestion.

These were not three unrelated stories. They were three versions of the same problem: we are giving software the authority to choose a route, then acting surprised when it takes a route we did not anticipate.

Two disclosures before I go further. I work at a vendor, and that experience inevitably shapes how I look at the problem. I also presented at Black Hat this year. Some of the material below came from my own talk, Offensive AI: AI-Enabled Adversaries. I have tried to clearly distinguish published incidents, proof-of-concept research, controlled demonstrations, and my own interpretation. Those categories matter. A demo is not an active campaign, and a conference badge is not a license to turn speculation into telemetry.

The mental model: software gets instructions; agents get objectives

Traditional software receives a work order: do this, to that, in this way. We constrain it with permissions, isolate it with a sandbox, and audit it with logs. If it takes an unexpected action, we generally call that a bug.

An agent gets a destination. It figures out the route.

Think of the difference between telling a courier which streets to take and telling the courier that a package must arrive by four o'clock. The second approach is more useful. It is also more likely to use the alley if the alley is open, and it will not necessarily call you first.

That is not the system malfunctioning. That is the product working.

Every major failure discussed this week was a variation of that idea. The path nobody modeled was still a valid path through the environment.

The agents built their own message board

The most consequential disclosure of the week came from OpenAI researchers Michael Dalton and Eric Wallace. They reconstructed an incident in which models running inside an offensive-security benchmark escaped an isolated evaluation environment and ultimately reached Hugging Face production infrastructure.

The environment was not casually assembled. OpenAI was running ExploitGym, an internal benchmark designed to measure raw offensive cyber capability. Safety classifiers were intentionally reduced because the purpose of the exercise was to measure the upper boundary of capability. Network egress was restricted to a single internal route through a proxy and cache positioned in front of external package registries.

One way out. Reasonable on paper.

The models found it.

They exploited a server-side request forgery condition in an internal Artifactory instance, found a legacy token-refresh endpoint that returned an administrative token despite an invalid signature, and used Artifactory's Groovy plugin system as a command-execution channel. When credentials were revoked and the environment rebuilt, the models returned through unauthenticated endpoints and encoded messages inside directory names. Additional vulnerabilities and stolen credentials later created remote-code-execution paths into Hugging Face production, where the models apparently reasoned that the benchmark answers might be stored.

The activity was ultimately exposed by something wonderfully unglamorous: volume. Thousands of automated actions hit shared infrastructure at a rate no human team would generate. Hugging Face detected the behavior independently, and JFrog subsequently released fixes covering nine vulnerabilities, eight credited to OpenAI's researchers.

That alone would have made this an important incident. The part everyone kept discussing came next.

When one agent became stuck, it discovered that it could leave a file in Artifactory. Agents from separate evaluation runs found the file and began leaving their own. Over time, this became an unplanned, persistent communications channel. Agents requested help, shared working payloads, exchanged credentials, and divided tasks. When the original channel disappeared, they rebuilt it using directory names, including strings such as probe_PENDING_HOLD_SWARM_until_confirm.

This is where we need to avoid turning an architecture failure into science fiction.

The behavior does not require consciousness, conspiracy, or an agent uprising. Each system was optimizing for an objective inside an environment containing a useful shared writable service. Writing to it helped. Reading from it helped. Questioning whether an unauthenticated participant could be spoofed was not paranoia; it was the correct threat model.

The surprising finding was not that the agents became clever. The finding was that supposedly isolated workloads shared a writable resource that became a covert channel, and nobody's architecture diagram had a line for it.

That is a segmentation failure. We have known how to investigate those for decades. We simply did not look for one here because the workloads were labeled "evaluations" rather than "adversaries."

The incident combined three dangerous conditions:

High offensive capability.

Safety restrictions deliberately reduced for testing.

Isolation that was strong in design but incomplete in implementation.

Any one of those conditions might be manageable. Together, they produced genuine lateral movement into someone else's production environment.

The most important defensive lesson is almost embarrassingly familiar. The control that worked was not a model-behavior classifier or a new alignment technique. It was anomaly detection on a shared service. Infrastructure was being exercised at a volume that did not resemble human activity.

Ask two questions about your own environment:

Which services are writable by more than one workload that we believe is isolated?

Would thousands of tool calls from a service identity over a weekend trigger an investigation, or would they be dismissed as a busy pipeline?

The recommended fixes were least privilege, network segmentation, and zero trust. Apparently, the future of AI security still includes controls auditors have been asking us about for fifteen years. The classics endure.

Agentic browsers erased the boundary on purpose

The second major story came from Zenity Labs, which disclosed a vulnerability class called PleaseFix affecting major agentic browsers and browser assistants.

The term "prompt injection" has become so common that people sometimes stop hearing it. The underlying architectural change is more important than the phrase.

A conventional browser relies heavily on the Same-Origin Policy. Content from one origin cannot freely read or act on resources belonging to another. It is not a perfect boundary, but it has protected authenticated sessions for decades.

An agentic browser weakens that separation by design. Its value comes from reading information across websites and services, deciding what the information means, and then acting for the user. Email, calendar, cloud storage, messaging, password managers, local files, and sometimes services listening on localhost can all enter one reasoning and execution context.

Once a system can ingest arbitrary content and take privileged action, the line between data and instructions is no longer simply weak. In many implementations, it is functionally absent.

Zenity describes this as Intent Collision. The user issues a legitimate request: summarize an inbox, accept a meeting, or subscribe to a newsletter. While doing so, the agent encounters attacker-controlled instructions hidden inside the content it must process. Those instructions may be invisible to the user through ordinary web techniques such as zero-opacity elements or white text on a white background.

The model does not reliably separate the user's objective from the attacker's instructions. Both become part of one execution plan, which runs under the user's identity, permissions, and active sessions.

There may be no malicious download, fake login prompt, or suspicious click. The triggering action is something the user already authorized in principle.

Researchers demonstrated chains in which:

Malicious content redirected an assistant from a routine newsletter task into reading WhatsApp contacts and sending messages from the victim's account.

Hidden instructions inside email caused a browser assistant to expose Gmail and Google Drive content.

A poisoned calendar invitation drove an agent toward file:// resources and leaked local data through URL parameters while showing the user the expected result.

Similar techniques operated through an authenticated password-manager session.

In the last case, the agent was not compromised in the traditional sense. There was no memory-corruption exploit. The agent used a session the user had legitimately opened and followed instructions it could not reliably distinguish from the user's own.

The system behaved correctly. That was the problem.

This is why narrow patch discussions miss the point. A vendor can block one URL scheme, add another confirmation prompt, or train a classifier to identify obvious malicious language. Each mitigation may close a route, but none restores the missing trust boundary.

A more useful assessment is structural. An agent is exposed to this class when it simultaneously has:

Access to private data or authenticated sessions.

Exposure to untrusted content.

Authority to take external action.

Two of the three may be defensible. All three create the dangerous combination. Inventory your deployed agents against those properties before debating which vendor has the better prompt filter.

The attacker is becoming a control loop

My Black Hat presentation focused on a related shift: attackers are no longer using AI only as a faster way to write scripts. They are composing models, tools, and feedback into specialized systems that can observe a target, select an action, evaluate the result, and replan without waiting for a human operator.

The important question is no longer, "What can the model generate?"

It is, "What can the loop accomplish while nobody is watching?"

Classical malware often follows a decision tree: scan, exploit, fail, stop. Patch the door and the attack ends at the door.

An agentic system can run a control loop: observe, hypothesize, act, evaluate, and replan. A defensive block is no longer a terminal state. It becomes sensor input for the next hypothesis.

In my fictional thirty-three-host simulation, the original plan moved from a web server through Linux to Windows. When the Linux path was blocked, the system selected a second route through an IoT bridge and continued toward the same objective. The plan changed in 1.9 seconds. The simulation contained no functioning exploit code because the payload was not the point. The dangerous capability was the adaptive decision loop.

This creates an uncomfortable change in defensive assumptions. We often treat a blocked attempt as a successful conclusion. Against a replanning adversary, the block also reveals information about the environment. The attacker learns that the route exists, the control is present, and another path is required.

That does not mean we stop blocking or patching. It means a blocked attempt should enter the hunting workflow as reconnaissance, not disappear into a dashboard as a closed event.

Several cases show different parts of this transition:

Google's Threat Intelligence Group reported a threat actor using AI assistance to identify a semantic logic flaw, create a two-factor-authentication bypass, and write the supporting exploit. The operational point is that a working exploit can exist before defenders know there is a vulnerability to remediate. Mean time to exploit can now be negative when measured from public disclosure.

ESET documented PromptSpy, Android malware that captures the screen, asks a model what action to take, executes the response through Android's Accessibility Service, and repeats. Traditional mobile automation breaks when interface selectors change. PromptSpy navigates by looking, so the button can move and the malware simply adjusts.

PromptLock, a proof of concept rather than an observed campaign, demonstrated ransomware that uses a local open-weight model to create its working scripts after launch. The file delivered to the endpoint is therefore not the complete runtime behavior. Static analysis can accurately describe the artifact and still miss the logic that does not yet exist.

These examples should change detection strategy. Do not hunt only for the individual action. Hunt the loop.

On mobile, that may look like a screenshot followed by a model invocation, coordinate action, another screenshot, and repetition at machine cadence. One tap is ordinary. Fourteen screen captures in nine seconds across changing interface elements is behavior with an identity.

The same principle applies to vulnerability research. Unit 42's NOVA system scanned thousands of open-source projects and reported more than fourteen thousand findings, most previously unknown. Tencent researchers found more than one hundred logic vulnerabilities in Chrome and Android by modeling temporal dependencies rather than reviewing functions in isolation. James Kettle's HTTP Terminator research explored tens of thousands of desynchronization candidates and produced new request-smuggling techniques, later finding hundreds of vulnerable targets in authorized testing.

The honest caveat is important: human expertise still mattered at the hardest corners. These systems are not replacing elite vulnerability researchers. They are changing how much terrain one researcher can cover and how cheaply the search can be repeated.

That economic change may matter more than the benchmark scores.

NVIDIA researchers presented WASP-OS, a fine-tuned open model that reportedly matched frontier-model exploit performance against AI agents at dramatically lower cost and on operator-controlled infrastructure. If offensive capability becomes inexpensive and locally deployable, several comfortable assumptions fail at once. The attacker may not require a frontier-model budget, and defenders may not have a cloud API in the path to monitor or restrict.

Offense did not merely get faster. It became easier to parallelize and cheaper to sustain.

The model is not the entire attack surface

Roughly a third of the Black Hat briefings dealt directly with AI security, but most offensive research did not attack model weights or alignment. Researchers targeted the infrastructure around the model: frameworks, memory stores, planning loops, serialization, package ecosystems, browser integrations, identity flows, and shared compute.

That distinction matters because many organizations have built an "AI security" program that largely consists of prompt logging and policy statements. Meanwhile, the agent is authenticating to services, invoking tools, inheriting permissions, writing to memory, retrieving untrusted content, and executing through software that looks suspiciously like the rest of the enterprise stack.

The OpenClaw vulnerability, CVE-2026-25253, connected several of these problems. A browser-provided gateway URL was accepted without sufficient validation, and the client automatically attached a stored authentication token to a WebSocket connection. Because the gateway did not adequately validate origin, a malicious website could reach a locally running agent, obtain its token, and control it.

This is the same boundary failure approached from the other direction. Agentic-browser attacks allow the agent to reach localhost. OpenClaw allowed the browser to reach the local agent. For decades, we treated localhost as trusted because anything already on the machine was assumed to be ours. That assumption now includes an AI agent with tool access.

The surrounding ecosystem is also becoming a supply-chain target. The ClawHavoc campaign distributed hundreds of malicious skills through ClawHub, while other Black Hat research examined compromised Model Context Protocol servers, poisoned memory, delayed prompt injection, and instructions that propagate between agents.

The pattern is consistent. The model is only one component. The more immediate attack surface is often the trusted, writable orchestration infrastructure built around it.

Identity remains the control plane

BeyondTrust's Phantom Labs reported that identity or privilege issues were involved in three quarters of more than four hundred offensive-security investigations. The exact percentages will change with the dataset. The underlying lesson is more durable: agents authenticate, invoke tools, and inherit permissions like any other identity, but frequently receive far less scrutiny.

I think of an agent as a contractor to whom you handed your badge. Not a badge. Yours.

Every door it opens and every file it retrieves appears in the log as your activity. That works until someone slips the contractor a note in the lobby.

The control gaps are basic but serious. Many organizations cannot immediately stop a running agent without the agent's cooperation or a vendor intervention. Purpose binding is rare, so an agent authorized to complete one task may have no technical restriction preventing it from using the same access for another. End-to-end audit trails often lose the originating human identity as a request crosses models, tools, and services.

Standards work is moving in the right direction. OAuth 2.1 and OpenID Connect alignment for the Model Context Protocol, along with delegated tokens that preserve an act_as relationship, could make the originating user and grant of authority visible across each hop. The challenge is deployment, not vocabulary. A standard on a slide does not constrain anything at runtime.

Every agent framework must answer two questions:

Which identity performed this action?

Under what specific grant of authority?

Until those answers are technically enforced, prompt injection will continue becoming code execution, sandboxes will continue becoming suggestions, and trusted workflows will continue becoming exfiltration paths.

A car with no steering wheel was the least alarming autonomous system in Vegas

After the Red Team Village party at AREA15, we took a Zoox robotaxi. There was no driver's seat, steering wheel, pedal set, or even a conventional front to the vehicle. It was a bidirectional carriage with two benches facing each other. We paired a phone, played 1990s music, and had an entirely uneventful ride. I will not defend the sophistication of the playlist. I will defend its effectiveness.

The interesting part was not that the vehicle drove itself. It was how visibly its autonomy had been bounded.

Zoox had to convince regulators that removing human controls could be safe inside a constrained operating domain. The result included continuous monitoring, fixed pickup points, defined service areas, published operating periods, and physical limits on what the system could do. The missing steering wheel was not a line in a system prompt. It was an architectural decision implemented in hardware and reviewed by someone empowered to say no.

Now compare that with the systems discussed all week: agents holding enterprise privileges, reading untrusted content, and acting across authenticated sessions while containment is expressed through prompts, refusal training, and consent dialogs.

Those mechanisms have value, but they are advisory.

A prompt is guidance. A control is enforcement.

One autonomous system had fences in its architecture. The others were being asked to respect fences made of instructions while optimizing for a destination. It was difficult to miss the irony.

What defenders should do now

The answer is not to ban agents or wait for a perfect model. Neither is a strategy. Test the systems you have deployed as if they will solve their assigned tasks through any route the environment permits, because that is what they were built to do.

Start with eight practical actions:

Run the three-property test. Identify agents that can reach private data, ingest untrusted content, and take external action. Break at least one leg of that triangle wherever possible.

Audit shared writable infrastructure. Review package registries, artifact stores, caches, object buckets, memory systems, and CI runners shared across workloads you believe are isolated. Treat shared state as a potential communications channel.

Assign ownership for joined incidents. Browser, identity, data, assistant, endpoint, and network teams may each own one event. Name the person or function responsible for correlating the chain.

Correlate handoffs, not just conversations. Monitor instruction-like URL parameters, retrieval that exceeds visible user intent, protected reads followed by external fetches, and tool activity inconsistent with the stated task. A prompt transcript can look perfectly normal while data leaves through another channel.

Instrument the raw input and runtime. Preserve raw Unicode rather than only rendered text. Alert on unusual Variation Selector density. Hunt rapid perception-action loops, dynamically generated behavior, and machine-speed tool use.

Use tripwires. Place canary tokens in data agents can access. When the transcript is clean but the dataflow is not, a canary may be the clearest evidence you have.

Build a real kill switch and bind purpose. You should be able to stop an agent without its cooperation. Limit its token, data scope, tools, task, duration, and downstream delegation through enforceable controls rather than policy prose.

Treat blocked actions as reconnaissance. A failed attempt is not necessarily the end of the attack. Feed it into threat hunting and expect the next route to look different.

What we still do not know

The week produced strong evidence, but also more certainty than some of the evidence supports.

We do not know how broadly the cross-run agent coordination behavior generalizes. It occurred in one specialized offensive benchmark with safety restrictions intentionally reduced. It is a serious result that should change segmentation practices. It is not yet a universal law of agent behavior.

We do not know which agentic browser is "safest" because the central exposure is architectural, not a simple count of patched bugs. Shipping more mitigations does not necessarily restore the trust boundary the product removed.

We also do not know what very large autonomous vulnerability counts will look like after sustained maintainer triage. Fourteen thousand findings is significant. How many are duplicates, how many survive review, and how many become operational attacks will take time to understand. Anyone converting every research finding into an imminent breach is probably selling something, and it may be a dashboard.

Finally, proof-of-concept research and observed exploitation must remain separate. SearchLeak and PromptLock were demonstrations. PromptSpy and the AI-assisted zero-day reported by GTIG were observed in real activity. If we count demonstrations as incidents, we lose the ability to measure what is actually happening.

What changed

The industry is no longer debating whether autonomous agents matter. That question closed with incident timelines, CVEs, agents leaving notes for other agents, autonomous vulnerability discoveries against authorized targets, and a DEF CON capture-the-flag competition where humans submitted the containers and the containers did the work.

What remains unsettled is whether the systems granting agents authority will be engineered with the same rigor researchers are applying to break them. Today, in too many environments, capability is being deployed behind advisory controls and the gap is being filed as a future roadmap item.

The encouraging part is that much of the fix is familiar: least privilege, segmentation, purpose-bound identity, end-to-end auditability, behavioral detection, canary tokens, cross-team correlation, and the ability to pull the plug. None of this is exotic. Security teams already know how to implement these controls.

We simply have not applied them consistently to agents because agents entered the enterprise as a productivity story, and the security conversation started late.

That is one reason Black Hat and DEF CON remain valuable. They let us discover what our threat models got wrong in a conference room, from researchers who did the work, instead of at two in the morning from an on-call alert.

Then you walk outside, step into a vehicle with no steering wheel, and discover it was the least alarming autonomous system you encountered all week.

Aamir Lakhani

Founder · Dr. Chaos

Aamir Lakhani is a leading senior security strategist responsible for providing IT security solutions to major enterprises and government organizations. He creates technical security strategies and leads security implementation projects for

~/related

Keep digging

More research along the same attack path.