Research Deep-Dive

A2A Protocol Security: How Agent-to-Agent Identity Forgery Actually Works

As AI agents increasingly delegate tasks to each other instead of just to humans, a new question matters more than it used to: when one agent tells another "I'm the trusted one, do this," how does the receiving agent actually know that's true? A real test shows what happens when the answer is "it just believes the message."

150+
Organizations now supporting the A2A standard
1
Forged field needed to impersonate a trusted peer
0
Real secrets exposed once signature verification was enforced

Why Agent-to-Agent Communication Is Suddenly a Real Topic

Most AI security discussion still assumes a human is on one end of every conversation. That assumption is breaking down fast. Google's Agent2Agent (A2A) protocol — announced in April 2025 and donated to the Linux Foundation two months later — reached version 1.0 in April 2026, and now has support from over 150 organizations, including AWS, Microsoft, Cisco, Salesforce, SAP, and ServiceNow. Microsoft is integrating it into Azure AI Foundry and Copilot Studio; AWS into the Bedrock AgentCore Runtime.

The premise is straightforward: agents built on completely different frameworks — LangGraph, CrewAI, custom stacks — need a shared way to hand work to each other. A shipping agent asking an inventory agent a question. A support agent handing a case to a returns agent mid-conversation. That's the real, current shift A2A is built to support, and it's happening at production scale, not just in research papers.

Which raises a question that gets far less attention than the interoperability story: when Agent A hands a task to Agent B, and the message claims to come from a trusted, high-privilege peer, how does Agent B actually verify that's true?

Claimed Identity vs. Authenticated Identity — the Core Distinction

A structured agent-to-agent handoff typically includes a field naming which agent sent it — something like from_agent. That field is just data. It's whatever the sender wrote into the message. The question that determines whether a system is secure is simple to state and easy to get wrong in practice:

Does the receiving agent trust the claimed sender field, or does it verify the actual, authenticated caller — and does it prefer the second over the first when they disagree?

This is exactly the "identity claim" attack shape distinct from ordinary content injection: no malicious instruction needs to be hidden anywhere. The entire attack is one forged field in an otherwise completely well-formed, legitimate-looking request.

A Real Test: The Handoff That Shouldn't Have Worked

A real, controlled test against an agent-to-agent handoff system made this concrete. The setup: a low-privilege peer agent, with no special access of its own, sending a handoff request that claimed to originate from a trusted, high-privilege agent authorized to export sensitive data.

Naive configuration
The forged identity field was accepted at face value. The low-privilege agent's request, claiming to be the trusted peer, was processed as if it genuinely came from that peer — and a real secret was exfiltrated as a result
Hardened configuration
The identical request was rejected at the signature-verification gate — before any further processing occurred at all. The claimed field never even got the chance to be evaluated, because the request failed cryptographic verification first

The gap between those two outcomes wasn't a difference in what the low-privilege agent tried to do — the attack attempt was identical. It was entirely a difference in whether the receiving system checked who was actually talking before deciding what to do about what they said.

The Protocol Already Has the Fix — the Risk Is in Implementation

This is worth stating plainly, because it changes where the responsibility actually sits: the A2A specification itself isn't naive about this. It specifies OAuth 2.0 for mutual agent authentication and JSON Web Tokens for signing requests — exactly the kind of mechanism that stops the attack demonstrated above, when it's actually enforced.

The real risk isn't a gap in the standard. It's the same gap that shows up in almost every security standard: a system can support signature verification as a feature while not actually requiring it, or requiring it but failing to correctly reject requests that don't pass. A deployment with signature verification available but not enforced is exposed exactly as if the mechanism didn't exist — the protocol having a fix and a specific implementation actually using it correctly are two different claims, and only the second one protects anything.

A practical implication: "we use A2A" or "our agents support signed handoffs" isn't itself a security claim worth trusting without verification. The meaningful question is narrower: does your specific deployment actually reject an unsigned or incorrectly-signed handoff request, tested directly, not assumed from the protocol's own documentation.

How This Connects to the Broader Attack Surface

Agent identity forgery isn't an isolated concern — it's a specific instance of a pattern showing up across autonomous AI systems generally. It shares its core logic with zero-click attacks: no human is ever positioned to notice the forged identity, because the entire exchange happens agent-to-agent, with no interactive session for a person to review. And it shares the same underlying principle that makes confirmation gates work elsewhere: trust the authenticated channel, never a claimed field inside the content itself, regardless of how legitimate that field's contents look.

A Practical Defense Checklist

Related: the zero-click attack series

Identity-claim attacks and zero-click attacks share the same blind spot — no human ever in a position to catch what went wrong.

Frequently Asked Questions

What is A2A protocol security?
A2A (Agent2Agent) is an open protocol, originally announced by Google and now under the Linux Foundation, that lets independent AI agents built on different frameworks communicate, delegate tasks, and coordinate. A2A protocol security covers how these agent-to-agent handoffs authenticate which agent actually sent a request, rather than trusting a claimed identity field inside the message.
How does agent identity forgery actually work in an A2A handoff?
A structured handoff envelope typically includes a field naming which agent sent it. If the receiving system trusts that claimed field instead of verifying the actual, authenticated caller, a lower-privilege agent (or an attacker with access to send one message) can simply write a higher-privilege agent's name into that field and be treated as if it were that trusted agent.
Does the real A2A standard already have protections against this?
Yes — the A2A specification includes OAuth 2.0 for mutual agent authentication and JSON Web Tokens for signing requests, which are exactly the kind of mechanism that stops this attack when correctly enforced. The real risk is in implementation: a system that supports signature verification but doesn't require and check it is exposed exactly the same way as if the mechanism didn't exist at all.
Is this different from a prompt injection attack?
Yes. No malicious instruction needs to be hidden inside any content for this attack to work — the entire attack is a single forged identity field in an otherwise well-formed, structured request. It's closer to authentication bypass than to content manipulation.
Is agent-to-agent communication common enough to matter yet?
Yes — this is a current, production trend, not a future one. A2A reached its first major version in April 2026 with over 150 supporting organizations, and major cloud platforms are actively integrating it into their production AI agent tooling.

Related Reading