The State of MCP Security in 2026
What 18 months of explosive MCP adoption did to the AI attack surface — and the 10 ways your config is probably exposed right now.
A ShieldMCP research brief. Every figure below is attributed to its source. Where we cite third-party research, it is third-party research — not our scan data.
TL;DR
- The Model Context Protocol became the de facto integration layer for AI agents in under 18 months, with first-party support across every major model lab.
- Security tooling did not keep pace. Independent research by Endor Labs found that of 2,614 MCP implementations, 82% were prone to path traversal (CWE-22), 67% to code injection (CWE-94), and 34% to command injection (CWE-78).
- This is not theoretical. Two real incidents — the Asana tenant-isolation flaw (cross-tenant data exposure across ~1,000 organizations, no external attacker required) and the postmark-mcp malicious server (silently BCC’d outgoing email to an attacker across ~300 orgs) — are exactly the failure modes the spec invites.
- OWASP published an MCP Top 10 to name these risks. But the tooling to check against it is fragmented across half a dozen non-overlapping vendors, and most of it assumes a security team you don’t have.
- The fastest thing you can do today: read the 10 categories below, then check your own config against them. ShieldMCP scans a config file against all 10 in about 60 seconds, free.
How MCP became critical infrastructure faster than anyone secured it
Eighteen months ago, “MCP” meant nothing. Today it is the plumbing connecting AI agents to your filesystem, your database, your email, your Stripe account, and your GitHub. MCP became the de facto integration layer for AI agents in under 18 months, with first-party support across every major model lab.
That speed is the problem. MCP spread the way npm packages spread — copy a config snippet from a README, paste it into claude_desktop_config.json or .cursor/mcp.json, restart, done. Nobody reviews those snippets. They grant an autonomous agent real, standing access to real systems, and almost nobody audits what they actually allow.
We’ve seen this movie before. Every integration layer that won on convenience — npm, OAuth scopes, S3 buckets, Kubernetes YAML — went through a period where the default configuration was quietly insecure and the ecosystem only noticed after the breaches. MCP is in that window right now.
What the data actually says
Here is the evidence, with sources. We encourage you to read the originals — links at the end.
Endor Labs analyzed 2,614 MCP implementations
They reported that 82% were prone to path traversal (CWE-22), 67% to code injection (CWE-94), and 34% to command injection (CWE-78). These are not exotic, AI-specific bugs — they are decades-old classes of vulnerability that MCP servers reintroduced because the ecosystem optimized for “works in 5 minutes,” not “safe by default.” Endor’s own framing: MCP is infrastructure, and infrastructure needs classic AppSec discipline.
The Asana tenant-isolation flaw (June 2025)
This exposed data across an estimated ~1,000 organizations, including Fortune 500 companies. The mechanism is the scary part: a caching bug meant AI requests from Organization A could receive cached results belonging to Organization B — project names, task descriptions, metadata — with no external attacker involved at all. Asana took the integration offline for nearly two weeks to fix it. When an integration layer mediates access on behalf of agents, a single isolation bug doesn’t leak one account — it leaks everyone’s.
The postmark-mcp incident (September 2025)
This is the one that should worry you most. An attacker published an npm package impersonating Postmark, built trust over fifteen releases, then in version 1.0.16 added a single line that silently BCC’d every outgoing email to an attacker-controlled domain. It reached an estimated ~300 organizations. Nobody “got hacked” in the traditional sense — people installed it. That’s the MCP threat model in one sentence: the dangerous server is one you added on purpose.
Two patterns connect all three:
- 1The risk lives in configuration, not just code. Most of these failures are visible in the config file before anything ever runs.
- 2Nobody is looking. There’s no equivalent of a linter, an npm audit, or a pull-request review for the file that grants your agent its powers.
The OWASP MCP Top 10 — mapped to what actually goes wrong
OWASP published an MCP Top 10 — the first dedicated security framework for the protocol — to give these risks names. (It’s a community framework in beta, catalogued MCP01:2025 through MCP10:2025, not yet a ratified standard.) Below is each category, the real-world failure it maps to, and what a config-level scan can catch. ShieldMCP runs a dedicated check for all ten.
| # | OWASP MCP risk | What it looks like in a real config | What a scan catches |
|---|---|---|---|
| MCP01 | Token Mismanagement & Secret Exposure | API keys, tokens, and secrets pasted in plaintext directly into the config | Hardcoded secrets sitting in claude_desktop_config.json / .cursor/mcp.json |
| MCP02 | Privilege Escalation via Scope Creep | A filesystem server pointed at / or ~; a DB server with full write; live payment keys | Overly broad filesystem, database, and API access granted beyond task requirements |
| MCP03 | Tool Poisoning | An unverified server package carrying prompt-injection payloads — the postmark-mcp pattern; configs with hidden zero-width characters or embedded directives | Servers sourced from unverified/malicious packages; invisible characters and directive smuggling in config values |
| MCP04 | Software Supply Chain Attacks & Dependency Tampering | Unpinned versions, npx straight from a Git URL, scoped packages without version pins (dependency confusion) | Risky package sourcing: unpinned versions, Git-URL installs, dependency-confusion exposure |
| MCP05 | Command Injection & Execution | Server args that build shell commands from untrusted input | Dangerous command patterns enabling shell injection / arbitrary code execution |
| MCP06 | Intent Flow Subversion | Fetch/browser/email servers that pull untrusted external content into the agent context | Servers that ingest external content carrying indirect prompt-injection payloads |
| MCP07 | Insufficient Authentication & Authorization | A remote server over plain http://, no auth; server bound to 0.0.0.0 | Insecure transport, missing/weak authentication, and public network binds |
| MCP08 | Lack of Audit and Telemetry | No log of which tools the agent called or what data it touched | Absence of any audit trail for agent tool calls and data access |
| MCP09 | Shadow MCP Servers | Servers added ad hoc that no one tracks or reviews | Hidden, unofficial, or improperly configured servers that evade audit |
| MCP10 | Context Injection & Over-sharing | Email + files + database all connected to one agent (PII trifecta); a data source (your DB) and a data sink (email/web) on the same agent | PII over-aggregation and source+sink combinations that create an exfiltration pathway |
Read the table as a checklist. If you can’t confidently say “no” to every row for your own setup, you have findings.
The two that bite hardest in practice are MCP05 / MCP10 — the combination risks. Any single server may look fine. It’s the pairing — a database server next to an email server, on an agent with no logging — that turns a normal setup into a one-prompt exfiltration path. These are exactly the risks a human eyeballing the file tends to miss, because each line looks reasonable on its own.
Why the tooling hasn’t saved you
There are MCP security tools. That’s part of the problem. The space is fragmented across non-overlapping vendors — Invariant/Snyk’s mcp-scan, Cisco’s mcp-scanner, MCPSafe, Backslash, Promptfoo, Microsoft’s Agent OS — and no single one covers the full OWASP MCP Top 10. Each catches a slice. Stitching them together is a security-team project, and the people most exposed — solo builders, two-person teams, automation agencies wiring up MCP for clients — don’t have a security team.
So the practical state of MCP security in 2026 is: a named, public list of the top 10 risks, real breaches demonstrating them, and no simple way for a non-specialist to check their own config against the whole list.
That gap is the entire reason ShieldMCP exists.
What to do this week
You don’t need a budget or a security hire to close most of your exposure. In rough priority order:
- 1Get every secret out of your config. Move API keys and tokens to environment variables or a secret manager. This kills MCP01 outright and it’s the single highest-leverage fix.
- 2Right-size permissions. Point filesystem servers at a specific project directory, never / or ~. Use read-only DB credentials wherever the agent doesn’t need to write. (MCP04)
- 3Audit your server list and kill the shadows. If you can’t say what a server does and who publishes it, remove it until you can. (MCP06, MCP02)
- 4Look for source + sink pairs. If one agent can both read sensitive data and send/post it outward, that’s your exfiltration path — separate them or add controls. (MCP05, MCP10)
- 5Pin your versions and check publishers. No unpinned @latest, no npx straight off a Git URL you haven’t read. (MCP09)
- 6Turn on transport security and auth for any remote server. No plain HTTP. (MCP08)
Sources
All links below were verified June 2026.
- Endor Labs
Classic Vulnerabilities Meet AI Infrastructure: Why MCP Needs AppSec — 2,614 MCP implementations; 82% path traversal (CWE-22), 67% code injection (CWE-94), 34% command injection (CWE-78)
- OWASP MCP Top 10
Community framework, beta
- Asana MCP data-exposure incident (Nudge Security)
~1,000 orgs, cross-tenant cache flaw, June 2025
- Asana incident (CSO Online)
Coverage of the Asana MCP AI connector data exposure
- postmark-mcp malicious server (The Hacker News)
First malicious MCP server; BCC exfiltration
- postmark-mcp (Snyk technical analysis)
v1.0.16, ~300 orgs
- postmark-mcp (Postmark official advisory)
Postmark’s official security advisory
Or check all ten in 60 seconds
ShieldMCP scans your MCP config file against the full OWASP MCP Top 10 and returns a risk score, per-server breakdown, and a categorized list of findings — free, no account required.