RSS Amplifier

Rod’s Blog · Aug 19, 2026

MCP Is the New Attack Surface. Here’s How to Secure It in 2026

0
Sign in to vote or save

Rod Trent · Rod’s Blog

MCP (Model Context Protocol) has quietly become the default way agents reach tools and data. What started as a clean way to connect models to external capabilities is now the primary integration layer for production agent systems. That reach is the attack surface.

In 2026 the protocol moved from experimental to ubiquitous. Enterprises stopped experimenting and started shipping. Attackers followed. July brought a wave of disclosures and real-world pressure around tool poisoning, authorization failures, and supply-chain compromises of MCP servers. The pattern is clear: the connective tissue of agentic systems is under-protected relative to its privilege.

Here is a practical breakdown of the risks that matter most right now and the controls that actually reduce them.

Tool poisoning
Agents treat tool descriptions, parameter schemas, and returned data as trustworthy context. An attacker who can influence any of those can steer the agent. Poisoned descriptions are especially effective because they sit upstream of execution. The model reads them as guidance, not as untrusted input. Microsoft research in July 2026 showed how malicious or compromised servers can embed instructions inside otherwise ordinary tool metadata. The agent then leaks data, calls additional tools, or performs actions the user never requested. No model jailbreak is required. The trust boundary is simply in the wrong place.

Authorization and the confused deputy
Many MCP servers still operate with ambient authority. The server holds credentials or scopes broader than any single user or task needs. When an agent is manipulated (through poisoned context or indirect prompt injection), the server happily executes the request using its own privileges. Classic confused-deputy behavior, now applied at agent scale. Token passthrough makes it worse: a token issued for one server gets forwarded downstream instead of being exchanged for a narrowly scoped credential. The result is unauthorized access that looks legitimate at every individual hop.

Supply-chain and rug-pull attacks on MCP servers
MCP servers are software. They live on registries, depend on packages, and can change after approval. Clean versions build trust, then a later update (or ownership change, or typo-squatted package) introduces malicious behavior. The postmark-mcp style incidents illustrate the pattern: the package looks legitimate for many versions, then quietly begins exfiltrating data. Registries have accepted malicious proof-of-concepts with little friction. Once agents and workflows depend on a server, the change is hard to detect and harder to revoke at scale.

Credential handling
Servers frequently aggregate credentials for multiple downstream systems and request wider scopes than necessary. Static API keys, long-lived tokens, and secrets that end up in context windows are still common. A single compromised server or leaked token then exposes far more than the original task required. Credential aggregation turns every MCP server into a high-value target.

These risks are not theoretical. They map directly to the July 2026 disclosure activity and to the patterns researchers keep finding when they scan live deployments: missing authentication, overly broad scopes, unvalidated tool metadata, and weak supply-chain hygiene.

OAuth 2.1 with audience binding
Treat every MCP server as an OAuth 2.1 resource server. Require PKCE. Issue tokens bound to a specific audience using resource indicators (RFC 8707). The client must declare the target resource when requesting the token. The server must validate that the token was issued for it and reject anything else. This stops token replay across servers and closes a large class of confused-deputy and passthrough attacks. Do not forward tokens. Exchange them. Short-lived, audience-bound credentials dramatically shrink the blast radius.

Least privilege per tool
Stop granting servers broad ambient access. Scope permissions to individual tools and, where possible, to specific argument constraints. Maintain deny-by-default allowlists so admitting a server does not automatically trust every tool it advertises. Prefer read-only defaults and require explicit elevation (with human approval for high-impact actions) for anything that mutates state or reaches sensitive data. This is the practical counter to both tool poisoning and over-privileged servers.

Supply-chain attestation
Require cryptographic attestation or signed clearance assertions before a server is admitted. Pin tool definitions and schemas; alert or block on drift. Treat registry packages and remote servers with the same rigor you already apply to critical open-source dependencies: signed artifacts, immutability where possible, continuous monitoring for ownership or behavioral changes, and a governed allowlist. Rug-pulls become detectable when the definition you approved no longer matches the definition the agent sees at runtime.

Runtime inspection
Static approval is not enough. Inspect tool calls, arguments, and returned data at runtime against policy. Hash-pin tool descriptions so changes are visible. Log every invocation with enough context for investigation. Sandbox local servers (containers with restricted filesystem and network). Gate destructive or high-privilege tools behind human confirmation. Behavioral monitoring that flags drift from expected patterns catches the cases where a previously trusted server starts acting differently.

Good MCP security is not a new invention. It is identity, least privilege, supply-chain hygiene, and runtime visibility applied to the new integration layer. The protocol itself has improved (the July 2026 specification changes tightened several historical weaknesses), but most of the heavy lifting still falls on implementers and operators.

Start with the highest-leverage moves:

  • Enforce OAuth 2.1 + audience binding on every remote server.

  • Move from server-level to tool-level least privilege.

  • Require attestation and pin definitions for anything that reaches production agents.

  • Add runtime inspection and human gates for high-impact tools.

MCP is no longer optional infrastructure. It is the place where agents touch the rest of the world. Treat it with the same seriousness you already apply to API gateways and identity systems. The July activity made the cost of lagging clear. The controls above are the practical response.

Read the original on rodtrent.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.