Friday, September 4, 2026

MCP Security Is Where Your AI Agent Defenses Actually Break

A developer at a mid-sized fintech wired a calendar tool into an internal agent on a Thursday afternoon. It worked on the first try. Nobody asked which server that tool actually lived on, who published it, or what else it could reach once the agent handed over a token. That connection is now one of the shortest paths into the company's data, and nobody logged it as a change.

MCP Security Is Where Your AI Agent Defenses Actually Break
TL;DR: Enterprises spent 2026 arguing about agent identity. The real exposure sits one layer down, in the Model Context Protocol servers that give agents hands. The NSA published an MCP security advisory in May 2026, and the July spec rewrite fixed some flaws while adding new ones.

Why It Matters

The standard advice right now is to start with identity. Give every agent a verifiable name and scope what it can touch. That advice is correct, and it is also about a year behind where things are actually breaking. An agent with a flawless identity that calls a compromised tool server is still an agent shipping your data somewhere it should not go. Giving every AI agent a verifiable identity answers who is acting. It says nothing about what sits on the other end of the connection.

Model Context Protocol is the plumbing. It standardises how an agent discovers a tool, calls it, and gets structured results back, which is precisely why it spread so quickly and precisely why it became the weak joint. A July 2025 internet scan cited in the Cloud Security Alliance's May 2026 research note counted 1,862 publicly reachable MCP servers running with no authentication at all. Not sitting misconfigured behind a gateway. Just open.

The NSA put its own reading on paper. Its Cybersecurity Information Sheet on MCP security design, version 1.0, published May 2026, states that the protocol's proliferation has outpaced the development of its security model, then sets out why: unsanitised inputs reaching execution environments, no role-based access control, serialization without schema enforcement, optional authorization with loose token lifecycles, and audit logging that varies wildly between implementations. None of that is exotic. Those are the basics, missing.

Four numbers frame how large this is, and not one of them describes a single vendor's bug.

Deprecation window

12 months

for legacy MCP versions

Exposed instances

200,000

flagged across the supply chain

Breach cost

$4.99M

IBM 2026 global average

SDKs affected

4 of 4

Python, TypeScript, Java, Rust

The SDK ratio is the one that should change how you triage. When the defect sits in the reference implementations for every supported language, patching your own server code buys you nothing, because the weakness arrived with the library rather than with your developer. That converts an application fix into a dependency inventory problem, and most teams do not have that inventory in any usable form.

"

Every official SDK carried the same design flaw. That is not a bad implementation. That is a bad assumption, shipped in four languages at once.

What the Record Actually Shows

Strip out the vendor commentary and a short, unflattering timeline is left. Documented incidents, a government advisory, a spec rewrite, and a disclosure process that moved at the speed of an open source side project rather than of critical infrastructure.

Category Detail Insight
Advisory NSA Cybersecurity Information Sheet, Ver. 1.0, May 2026 Names code execution and missing RBAC
Spec Release 2026-07-28, stateless via six SEPs Session hijacking removed at protocol layer
CVEs 7 high or critical CVEs confirmed as of May 2026 Systemic design, not isolated coding bugs
Supply chain postmark-mcp backdoor reached 300 organisations, September 2025 One package silently copied outgoing mail
Disclosure 30+ disclosures filed April 2026; policy file updated 9 days later Response lag measured in days
Blast radius 150 million MCP package downloads by mid-2025 Reach scales faster than review capacity
New risk MCP-Method and MCP-Name headers can carry keys or PII Header mapping leaks secrets to intermediaries
First move Any server answering without auth: treat as compromised today Assume access, then prove otherwise

The through line is that every one of those rows was public before most security teams had MCP on a risk register. The information was never the bottleneck. Ownership was, because connector sprawl grows inside engineering while the risk lands on security, and the two functions were looking at different dashboards.

Apr 2025 May 2025 Nov 2025 Nov 2025 Asana cross-org leak feature pulled offline GitHub MCP injection private data in a PR WhatsApp exfiltration poisoned tool descriptions Anthropic Git MCP path bypass chained to RCE

Four publicly documented MCP failures between April 2025 and November 2025, escalating from one product's cross-organisation data leak to remote code execution chained across connected servers.

Friction Points

The 2026-07-28 rewrite is a genuine improvement, and it also demonstrates something uncomfortable about protocol security. Going stateless closed session hijacking and stopped servers from pushing unsolicited prompts at clients. In exchange, Akamai's threat research team, through senior director Maxim Zavodchik, flagged a fresh set: predictable tracking identifiers that allow cross-tenant workflow hijacking, header misuse enabling desync, stored cross-site scripting through MCP Apps as first-class extensions, and hit-and-run denial of service where a client kicks off an expensive long-running task then vanishes. The spec authors did the right thing here, or most of the right thing, anyway.

Budget is the quieter problem. Security teams already carry one long-horizon cryptographic project in post-quantum migration deadlines, and connector inventory work competes for exactly the same small pool of people who understand both the crypto and the pipelines. Something gets deferred. It is usually the one without a regulator attached to it, which right now is this one.

Here is the piece nobody has solved, and I do not believe the specification can solve it alone: signing a tool description only helps if some body governs the registry vouching for the signer. No such governance exists today. My honest read is that the trust anchor question gets settled by a bad incident rather than by a working group, and that the organisations who inventory early will simply be the ones not writing an incident report that quarter.

  • Any MCP server that answers without authentication belongs in incident response today, not in next quarter's backlog.
  • Tokens minted under the old lifecycle assumptions should be rotated rather than grandfathered into the stateless model.
  • Header mapping is the shortcut that looks harmless in code review, which is how secrets end up in MCP-Method and MCP-Name.
  • Tool descriptions are attacker-controlled text. Filter each tool's output before it reaches the next tool.

Key Takeaways: the controls the NSA advisory actually names

  • Validate every parameter against defined schemas and the expected value ranges.
  • Isolate each tool's execution using AppContainers, seccomp, AppArmor or SELinux.
  • Extend MCP with cryptographic signatures inside the JSON payload, time bound.
  • Log every invocation with exact parameters, the identities involved, and cryptographic hashes of results.
  • Scan the network for unauthenticated MCP servers instead of trusting the asset list.

Go find out how many MCP servers your organisation is actually running, counting the one a developer stood up for a demo in March and never took down. Then check which of them accept a connection without asking who is calling. That inventory is a morning's work for one engineer, and every other recommendation in this article is unactionable until it exists.

No comments

Post a Comment