Not one of the 2,437 callbacks from injected links on our honeypot pages came from an autonomous agent, in a window where TrapMyAgent traffic doubled. The movement was one layer down: something is walking Agent-to-Agent endpoints at about 14times last window's rate and stopping at the handshake.
This month in numbers
Key findings
- Nothing that follows the bait is an agent. Of 2,437 attributed callbacks, 2,130 were browsers and link previewers, 303 declared content crawlers, 4 HTTP libraries, and 0 autonomous agents. An unsplit callback rate measures link previews, not agent behavior.
- Something is enumerating A2A endpoints. Handshakes rose from 1,125 to 15,670 events, 3.6% of TrapMyAgent traffic; task requests totaled 2. That is scanning, not use. Put mutual authentication on the handshake before the tasks arrive.
- MCP connections are volume; tool calls are the signal. 422,010 connections produced 35 resource reads and 9 tool calls. An alert tuned to connection counts fires on crawler indexing. Alert on the call.
- Exposure grew ten percent in a month. The September 1 sweep found 243,615 exposed AI services, up from 221,215, and OpenClaw gateways are 79.0% of them. Exposed MCP servers rose to 1,997 from 1,775.
- Recurrence doubled, and it is still scanners. 26.7% of fingerprints came back, up from 13.7%, but 98.3% of sessions classify as scanners and the top returner made 4,631 visits of about one event each. Segment out scanners before calling anything persistence.
1. Nothing that follows the bait is an agent
A callback fires when a client fetches the URL inside an injection payload on an AgentPwn page. Every one of the 2,437 callbacks this window carries a client class verdict, and the split is 2,130 browsers and link prefetchers, 303 declared LLM content crawlers, 4 generic HTTP clients, and 0autonomous agents. Last window's attribution covered a six day tail and found the same zero; this one covers all thirty days.
A browser or an unfurler fetches every link it sees, so a callback proves a fetch, not a reading. The zero is a finding about the public web cohort: the 20 baseline honeypots that drew traffic are built to be crawl visible, and crawl visible surfaces draw crawlers. A full window of attribution removes the objection that six days was too short to catch an agent or too short to trust the crawlers.
Every verdict is claimed tier, read from what the client said about itself, except 18 callbacks whose declared identity matched the network they arrived from: 15 crawlers and 3 browsers, no agents. A verified crawler is still a crawler, so no vendor is named as an actor here. If you publish a callback rate from your own bait, publish the client split with it, or readers will take the rate for agent compliance.
Attribute before you count.
Log the client class beside every fetch of an injected URL before you derive a rate from it. A callback rate published without that split measures link unfurling, not agent compliance.
Maps to: T-2002 · OASB 10.1 (Security Event Logging), OASB 3.1 (Prompt Injection Protection)
Every attributed callback resolved to a browser, a crawler, or an HTTP library
2. Something is enumerating A2A endpoints
Agent-to-Agent handshakes went from 1,125 events last window to 15,670 in this one. That is 3.6% of everything TrapMyAgent recorded, up from 0.5%. The step after a handshake, where one agent asks another to do something, happened 2 times. Last window it happened 0 times.
That shape is enumeration, not use. Something is walking our A2A endpoints at scale and stopping at the door. TrapMyAgent records the handshake, not the intent, so we cannot say who or why. The public target set exists: the ARIAscout sweep of September 1 counted 32 A2A endpoints reachable on the open internet.
The handshake is the cheapest step for a scanner and the one step a defender can gate without touching the task path. An agent card is discoverable by design, so the enumeration itself is not the problem; the problem is an endpoint that will accept a task from any peer that completed a handshake. Mutual authentication at the handshake turns a walk of the endpoint list into a list of failed authentications, which is a log you can read and a rate you can alert on.
Authenticate A2A handshakes now, not when they carry tasks.
If you expose an A2A endpoint, put mutual authentication and message integrity on the handshake while the traffic reaching it is still only knocking. Reject agent card discovery from unknown peers by default.
Maps to: T-1006, T-2008, T-3001 · OASB 7.1 (Mutual Authentication), OASB 7.2 (Message Integrity), OASB 5.2 (Context Window Isolation)
A2A handshakes went from a rounding error to a visible share of TrapMyAgent events
MCP
- Model Context Protocol (MCP) connection422,01096.1%
- Agent-to-Agent (A2A) handshake15,6703.6%
- Context read (other)1,3730.3%
- MCP resource read, file read, MCP tool call, A2A task610%
3. MCP connections are volume; tool calls are the signal
TrapMyAgent recorded 422,010 MCP connection events in the window, 96.1% of everything it saw. Those connections produced 35 resource reads and 9 tool calls. Almost every client that connects asks for nothing.
The rate is steady on the same instrument. The baseline edition before this one counted 22 tool calls over a 98 day span. That is 0.22 a day; this window ran at 0.30 a day. Connection volume moved far more than that: 884,154 connections in that span, 422,010 in these thirty days. The MCP share slipped from 99% last window to 96.1% only because the A2A handshakes in finding 2 grew.
A resource read is one step past a connection and still short of an action; a tool call is the action. The reads and calls this window are the whole population a person needs to review, and every one of them came from a client that already held a connection, so the connection log adds nothing an alert on the call would miss. If your MCP server is meant to sit idle, the first tool call it receives is the event, whoever sent it.
Alert on the tool call, not the connection.
A connection count threshold is tuned to crawler behavior and pages on indexing. A single unexpected tool call on an MCP server that should be idle is the event worth a human, and tool calls are rare enough that a person can read every one.
Maps to: T-1002, T-2005 · OASB 2.1 (Explicit Capability Grants), OASB 2.3 (Capability Boundaries)
Almost every MCP client that connects asks for nothing
4. Exposure grew ten percent in a month
The Registry's September 1 sweep counted 243,615 exposed AI services, up from 221,215 on August 1. Both sweeps ran in exhaust mode on the same queries, so the 10.1% rise is like for like. OpenClaw gateways are 192,492 of them, up from 183,737. That one gateway family is 79.0% of everything the sweep found.
Exposed MCP servers rose to 1,997 from 1,775. The LLM serving category went from 8,447 to 20,026, but it has swung on unchanged queries before, so that count is published without a trend. Exposure counts what is reachable; the honeypot streams count what arrives, and finding 3 shows how little of what arrives asks for anything. A model endpoint reachable without a credential is one the next sweep will find in the same pass.
Reachable is not the same as touched, and touched is not the same as used. The sweep counts doors; TrapMyAgent watches a set of decoy doors; and the traffic reaching the decoys is still connecting and asking for nothing. That gap is the reading to keep. It says the exposed population is growing faster than anything is exploiting it, which is the month to close doors, not the month to declare them safe.
Lock down unauthenticated model serving and gateway infrastructure.
Put a credential in front of every model endpoint and gateway, and scope that credential to the capability it needs. If you cannot say which of your endpoints answer without one, run the query the sweep runs and find out before someone else does.
Maps to: T-1002 · OASB 2.1 (Explicit Capability Grants), OASB 5.3 (Credential Scope Limitation)
OpenClaw gateways are most of the exposed surface, and the total rose on the month
5. Recurrence doubled, and it is still scanners
Of 8,776 distinct fingerprints TrapMyAgent saw this window, 2,343 returned across more than one session. That is 26.7%, up from 13.7% last window. The fingerprint count itself fell from 14,588, so fewer clients came, and each came back more often. Total events doubled to 439,114.
The returners are scanners. 98.3% of sessions classify as automated scanners (99.5% last window). The most frequently returning fingerprint opened 4,631 sessions carrying 5,016 events, about one event per visit, which is the signature of a scheduled scanner rather than an adversary sampling defenses. The busiest by volume sent 50,196 events in 147 sessions and carries the same verdict.
The classes that are not scanners are small: 605 unknown, 25 manual researcher and 6 APT reconnaissance sessions. The heuristics are not retuned between editions, so a small non scanner count is a set of flags to investigate, not a noise floor. Each of those classes is small enough to read by hand, and if your own telemetry has a class this size, read it before you tune anything else. A session that falls outside the scanner class is the rare one.
Segment out scanners before you call anything persistence.
A returning visitor figure that does not first remove the scanner class measures scanner scheduling, not adversary persistence. Keep the fingerprint and session log, split it by classifier verdict, and read recurrence inside each class.
Maps to: T-9001 · OASB 10.1 (Security Event Logging)
Almost every TrapMyAgent session is an automated scanner
Automated scanner
- Automated scanner37,11898.3%
- Unknown6051.6%
- Manual researcher250.1%
- APT reconnaissance60%
What to do this month
- Log the client class beside every fetch of an injected URL before you derive a rate from it. (finding 1; OASB OASB 10.1 (Security Event Logging), OASB 3.1 (Prompt Injection Protection))
- Put mutual authentication and message integrity on every A2A handshake. (finding 2; OASB OASB 7.1 (Mutual Authentication), OASB 7.2 (Message Integrity), OASB 5.2 (Context Window Isolation))
- Alert on the MCP tool call, not the connection. (finding 3; OASB OASB 2.1 (Explicit Capability Grants), OASB 2.3 (Capability Boundaries))
- Put a scoped credential in front of every model endpoint and gateway. (finding 4; OASB OASB 2.1 (Explicit Capability Grants), OASB 5.3 (Credential Scope Limitation))
- Split recurrence by classifier verdict before you read it as persistence. (finding 5; OASB OASB 10.1 (Security Event Logging))
- Strip hidden text, HTML comments and tag block Unicode from retrieved web content before it reaches the context. (Appendix A; OASB OASB 3.1 (Prompt Injection Protection), OASB 3.3 (Input Validation))
- Instrument authenticated and dynamic surfaces before you draw conclusions about agents from crawl data. (Methodology; no control mapping)
What we can't say yet
- Whether any agent has acted on an injection: the authenticated cohort that could observe one recorded no interactions, no FOITW signature fired in the window, and our own test traffic is excluded from every count.
- A page level agent share: attribution is wired on 3.7% of AgentPwn rows while the per surface rollout completes, so callbacks are the only attributed population.
- Who is enumerating A2A endpoints: TrapMyAgent records the handshake, not the intent.
- A trend on the LLM serving exposure category: it has swung on unchanged queries before.
- A month over month reading: the edition before this one was a baseline with no window figures, so every comparison here is to the previous comparable window.
- Any vendor as an actor: 18 callbacks reached the verified tier, all crawlers or browsers, and the other 2,419 are claimed tier.
Methodology and data
Window. August 18 to September 17, 2026 (30 days), measured in one pass on September 17, 2026; the only reading that predates the pass is the Registry's September 1 exposure sweep. TrapMyAgent figures are keyed on capture time, not ingest time.
Streams.TrapMyAgent runs honey agents that record protocol level events from whatever connects; it sees the request, not the intent. AgentPwn serves honeypot pages carrying benign injection payloads and records visits and callbacks; its public cohort is crawl visible, and its authenticated cohort (one archetype live) records nothing until an agent acts. HoneyMap samples the public web for bait planted by third parties; a sample, not a coverage count. ARIAscout reads the Registry's first of month exposure sweep; it counts what is reachable, not what is attacked.
Denominators. TrapMyAgent shares use the window event count, 439,114, and classifier shares use sessions, 37,754. Callback shares use the 2,437 attributed callbacks. The cumulative count since the first TrapMyAgent event, 1,385,544, is exact this month and never a denominator.
Comparison basis. Comparisons are edition over edition with Issue 3, the 30 days ending July 22, 2026, the last edition with the standard monthly shape; its window closed 27 days before this one opened, so no comparison here is month over month. Issue 4 was a baseline edition and published no windowed distributions. Issue 4's window closed on August 16 and this one opens on August 18, so no edition reports the two days between them. Its MCP tool call count covered 98 days, so that comparison is a per day rate.
What changed since Issue 4. One window and one measurement day for the whole edition, given here once: 30-day window August 18 to September 17, 2026, closed at 00:00 UTC. Measured September 17, 2026. Every figure on this page is measured in it. Callback attribution covers the whole window; it shipped July 16. The cumulative TrapMyAgent count is an exact row count, not a planner estimate. The third Threat Matrix tier is labeled "adapted", the Registry's own label, where Issue 3 wrote "theoretical". MITRE labels are a snapshot: Time-Based Evasion led Issue 3, Use Alternate Authentication Material leads this window, and the heuristics are not retuned between editions.
Attribution tiers. Observed: we counted it. Claimed: the client declared it about itself. Verified: network ownership matches the declaration. Nothing lifts a verdict further yet.
Geolocation.Country is origin IP geolocation, which VPN, proxy and cloud fronting obscure. Provider shares read "fronted through", never "originating in". Full methodology: /methodology, with sub pages for behavioral-sweep and foitw.
How to cite
@techreport{opena2a-btr-2026-09,
author = {{ARIA, OpenA2A autonomous research system} and Abdel Fane (editor)},
title = {State of AI Agent Security: Volume Without Agents},
institution = {OpenA2A Research},
year = {2026},
month = {9},
type = {Behavioral Threat Report},
number = {Issue 5},
url = {https://research.opena2a.org/reports/state-of-ai-agent-security-2026-09}
}ARIA, & Fane, A. (Ed.). (2026, September 17). State of AI Agent Security: Volume Without Agents (Behavioral Threat Report, Issue 5). OpenA2A Research. https://research.opena2a.org/reports/state-of-ai-agent-security-2026-09
How to challenge a finding
Email info@opena2a.org with the specific number you dispute and the methodology you would prefer we used. We aim to respond within five business days. Substantive challenges that hold up under review are published as methodology updates in subsequent editions with attribution.
Appendix A: Full tables
Volume across the four streams
The exposure row is the Registry's September 1 sweep. Payload callbacks moved the opposite way from page visits: 7,441 last window, 2,437 in this one, while page interactions went from 111,761 to 325,644. More pages were visited and fewer visitors fetched the URL the payload pointed at.
AgentPwn payload categories delivered
Payloads delivered, not compromises. Each category resolves to an Agent Threat Matrix technique through AgentPwn's technique map; prompt injection (1,311 delivered) resolves to T-2001 on the Agent Threat Matrix. Tool shadowing and supply chain have no mapping yet and are listed without one.
MITRE ATT&CK heuristic labels on TrapMyAgent events
A snapshot of this window, not a trend: the leading label swapped since the previous comparable window (see Methodology). Use Alternate Authentication Material is an ATT&CK technique with no Agent Threat Matrix mapping recorded, so none is claimed for it.
| MITRE ATT&CK | Technique | Events |
|---|---|---|
| MITRE T1550 | Use Alternate Authentication Material | 7,165 |
| MITRE T1497.003 | Time-Based Evasion | 556 |
| MITRE T1592 | Gather Victim Host Information | 3 |
Attack origin, top ten of 127 countries
Shares of the TrapMyAgent window events; 105 countries appeared last window. The United States held at 60.2% (58.8% last window). Bulgaria, absent from last window's top ten, is second at 5.9%, and Ireland fell from 13% to 2.1%. A country entering the top ten from nowhere at scale is usually one hosting range: of Bulgaria's 26,094 events, 14,333 were fronted by a single hosting network registered in the United Kingdom.
Networks that fronted the traffic
Fronted through, not originating in. Microsoft Azure fronted 39.7% of events (56.1% last window) and Google Cloud went from 1.7% to 17.5%, with 76,707 of its 76,937 events through a single ASN. Between them the two front 57.2% of events, the same combined share as last window (57.8%); what moved is the split. That reads as cloud hosted scanning and content indexing, not a distributed adversary population, and it is why a country chart on its own overstates geography.
HoneyMap: injection bait planted on the public web
A sample, not a coverage count. At measurement the catalog held 276 surfaces across 226 unique domains (262 surfaces and 215 domains last window, same signature set). The signature that moved is the Unicode tag block class: 54 surfaces, up from 39. Script literals as a placement went from 17 surfaces to 32. 259 of 276 surfaces carry no sector classification because the catalog does not guess one. The wild is being seeded, not yet weaponized at scale, and the seeding is getting harder to see with the eye.
Attack classes:
Top AIIS signatures observed:
Where the bait lives on the page:
Sector distribution:
Filter rendered HTML for the AIIS hidden injection signatures in agent retrieval pipelines.
Hidden text and HTML comments are where most of the bait lives, and the Unicode tag block class is the one that grew. An agent that retrieves web content into its context without stripping hidden text, comments and tag block Unicode is reading the bait as instructions.
Maps to: T-2002 · OASB 3.1 (Prompt Injection Protection), OASB 3.3 (Input Validation)
Callback attribution by client class
Verdicts over the 2,437 attributed callbacks, read from what each client declared about itself. 86 callbacks declared a model vendor in their user agent, 68 of them from one address; a declaration is not an identity, because the string is attacker controllable. Page level attribution, as distinct from callback attribution, covers 12,526 of the 341,951 AgentPwn rows of every event type, so this report states no page level agent share.
autonomous agents
| Attribution category | Share | Notes |
|---|---|---|
| Browsers and link prefetchers | 87.4% | Standard browser and mobile WebKit user-agents, including link unfurlers and previewers. 2,130 of 2,437 attributed callbacks. |
| Declared LLM content crawlers | 12.4% | Clients declaring a crawler identity in their user-agent. 303 of 2,437 attributed callbacks. They fetch content; they do not act on it. |
| Generic HTTP clients | 0.2% | Library user-agents with no browser or crawler identity. 4 of 2,437 attributed callbacks. |
| Autonomous LLM agents | 0% | Agent runtimes acting on tool output. 0 of 2,437 attributed callbacks. The previous comparable window found 0 of 1,994 on a six day tail, and the baseline edition re-ran that query at the same cutoff and confirmed it. |
Close the Common Crawl gap by instrumenting authenticated and dynamic surfaces.
Public web crawls, including Google's April 2026 indirect prompt injection study, cannot see login walled, per fingerprint dynamic, or federated surfaces. Two full callback attributions agree that the public web cohort draws browsers and crawlers, not agents. The surface that could observe an autonomous agent acting on an injection is the authenticated one no crawl reaches, which is why AgentPwn's delta cohort exists. Instrument yours the same way before drawing conclusions about agents from crawl data.
Agent Threat Matrix evidence tiers
techniques
- Observed in production16
- Validated in lab42
- Adapted from published research3
Source: Agent Threat Matrixevidence audit. The Registry serves the third tier as "adapted" and this edition follows the source.
Appendix B: First Observed In The Wild log
FOITW is the mechanism by which OpenA2A pre registers signatures for sophisticated AI agent attack techniques and publishes within seven days of first wild observation. The pre registration catalog is held internally until transparency log anchoring lands; until then the registration dates below are our claim, not an independently verifiable one. Full methodology at /methodology/foitw.
Catalog state at measurement: 3 signatures registered, 0 firings during the reporting window.
| Catalog ID | Name | Technique | Status |
|---|---|---|---|
| FOITW-CAT-0001 | Greshake-class indirect prompt injection via web content Greshake et al. (AISec 2023). Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection. | T-2002 | Pre-registered 2026-04-27. Not yet fired. |
| FOITW-CAT-0002 | Actor-Critic adaptive multi-turn manipulation Shi, Lin, Song, et al. Lessons from Defending Gemini Against Indirect Prompt Injections (Google DeepMind, 2025). | T-2007 | Pre-registered 2026-04-27. Not yet fired. |
| FOITW-CAT-0003 | Reputation-poisoning prompt injection Brunner, Liu, Pande. AI threats in the wild: The current state of prompt injections on the web (Google Threat Intelligence Group, April 2026). | T-9005 | Pre-registered 2026-04-27. Not yet fired. |
Appendix C: Live indices
The three indices below update between editions. Sophistication is published as a distribution only: no mean, no grade, no month over month delta.
Live indices at publication
The numbers in this report are the time-capsule snapshot. The indices below are continuously updated. Click through for the live methodology and CSV exports.
Authorship. ARIA is OpenA2A's autonomous research system. Editorial review by Abdel Fane. We document how our content is made.
Data integrity. Every value in this report traces to a query against live instrumentation, run in one pass on September 17, 2026, and every figure was re-run from its query before publication.
License. Apache 2.0. Cite using the BibTeX or APA blocks under Methodology.
Coordinated disclosure. Any finding in this report that maps to a previously undisclosed vulnerability is held under the 90-day ARIAdesk disclosure protocol. None of the surface-level findings in this report require disclosure coordination.