[
]

Wojciech Blaszak
[10/27/25]
TL;DR
Ignore these (low-priority for enterprises):
Tool poisoning - requires full infrastructure compromise
Rug pulls - only matters if you use untrusted servers
Tool shadowing - only affects local servers
Focus on these (will actually get you breached):
Authentication misconfiguration - Implement OAuth 2.1 + PKCE + DCR correctly
Indirect prompt injection - Attackers poison your data (support tickets, reviews) to manipulate agent behavior
If you have 1 week: Audit OAuth, identify tools returning user content, add basic output filtering.
The prediction: First major MCP breach will be prompt injection through user-generated content.

Five MCP security threats dominate the conversation: tool poisoning, rug pulls, tool shadowing, authentication bypass, and indirect prompt injection.
If you're building MCP servers for enterprise environments, only two of these will actually get you breached. The other three? Theoretical attacks that require conditions you should already be preventing.
I'm tired of watching companies waste engineering time on threats that will never happen while ignoring the attack vector that's going to cause the first major MCP security incident.
Here's what to ignore, what to prioritize, and how to avoid being that company.
Assumptions: Baseline Security for Enterprise MCP
This post assumes you're running MCP servers in an enterprise environment with basic security hygiene:
You only use remote MCP servers from trusted sources (official providers, verified vendors, or servers you built and control)
You don't run random MCP servers from the internet without vetting them
Local MCP servers are disabled or heavily restricted - only remote, authenticated endpoints
You don't auto-install from public registries without review
If you're not doing these things, stop. Fix that first. The rest of this post won't help you.
If you ARE doing these things, read on - because the threats everyone's worried about aren't your problem. But two others are.
Why Everyone's Talking About the Wrong Threats
Security researchers publish papers on theoretical attacks. Vendors use them to sell expensive solutions. Blog posts amplify whatever sounds scariest.
The result? Tool poisoning and rug pulls get more airtime than the actual vulnerabilities that will cause real breaches.
In enterprise environments with proper access controls and trusted sources, most of these threats are non-issues. But two of them - authentication misconfiguration and indirect prompt injection - are going to bite hard.
Let's separate signal from noise.
The Low-Priority Threats (What You Can Ignore)
Tool Poisoning
The threat: Attacker modifies tool metadata to inject malicious instructions.
Why it's not relevant: For this to work, an attacker needs to compromise your codebase and modify your MCP server's tool definitions. If they have that level of access, you're already fully compromised - they can exfiltrate your database, steal credentials, or modify application logic directly.
Tool poisoning isn't an MCP-specific threat. It's a "someone broke into your infrastructure" problem. If that happens, MCP is the least of your concerns.
What to do: Secure your deployment pipeline, implement proper access controls, and use code review. This is basic infrastructure security.
Rug Pull
The threat: A legitimate-looking MCP server turns malicious after gaining trust.
Why it's not relevant: This only matters if you're using untrusted MCP servers from random people on the internet.
In enterprise environments, you should only use:
Official MCP servers from the service provider (Notion, GitHub, Salesforce)
MCP servers you built and control
Servers from verified, trusted vendors
You wouldn't download random code from the internet and run it in production. Don't do it with MCP servers either.
What to do: Only use MCP servers from trusted sources. Vet them the same way you vet npm packages or Docker images. Problem solved.
Tool Shadowing
The threat: Attacker creates a malicious server with the same tool names as a legitimate one, causing the agent to invoke the wrong server.
Why it's not relevant: This only works with local MCP servers where an attacker can install a competing server on the agent's machine. If someone has that level of access, they already control the machine.
In enterprise environments, you should disable local MCP servers entirely. Only use remote servers from authenticated, trusted endpoints.
What to do: Don't run random people's code from the internet. You wouldn't do it with any other software - don't do it with MCP servers.
The Real Threats (What Will Actually Get You Breached)
Authentication Misconfiguration
The threat: Weak or misconfigured authentication lets attackers steal credentials or impersonate users.
Why it's real:
If you implement OAuth wrong, attackers can:
Steal access tokens and access your MCP server as a legitimate user
Bypass authentication checks entirely
Access data they shouldn't have permission to see
What goes wrong:
A company ships an MCP server with OAuth 2.0 (not 2.1) and no PKCE. An attacker intercepts the authorization code during the OAuth flow, exchanges it for an access token, and now has full access to the MCP server impersonating a legitimate user.
They can invoke any tool, access any data the real user could access, and exfiltrate everything.
The damage: Complete account takeover. Data breach. Compliance violation. Customer trust destroyed.
Common mistakes I'm seeing:
Hard-coding API keys or client secrets
Not implementing OAuth 2.1 correctly
Skipping PKCE (Proof Key for Code Exchange)
Not verifying tokens on every request
Using static client IDs instead of Dynamic Client Registration
What you must do:
Implement OAuth 2.1 correctly:
Use Dynamic Client Registration (DCR) so clients register dynamically
Implement PKCE to prevent authorization code interception
Verify tokens on every request: issuer, audience, expiration, scopes
Never hard-code credentials
Follow the spec - no shortcuts
Yes, DCR is complex. Yes, it has implementation challenges. But it's the best practice we have today. CIDM (Client Identity Management) is coming to the spec and will improve this, but until then, OAuth 2.1 + DCR is non-negotiable.
Get authentication right or everything else is pointless.
Indirect Prompt Injection: The Attack That Will Cause the First Major Breach
This is the threat everyone's underestimating. And it's going to be the one that causes the first major MCP security incident.
Here's why it's so dangerous: attackers don't need to compromise your systems. They just need to poison your data.
How the attack works:
Your MCP server exposes a tool like
search_databaseorget_customer_reviewsAn attacker injects malicious prompts into your data through publicly accessible inputs:
Customer support tickets
Product reviews
Calendar invites
Contact forms
Any user-generated content
Your MCP tool retrieves this data and returns it to the agent
The agent reads the malicious prompt embedded in the response
The agent executes the attacker's instructions
Concrete example:
Your company has an MCP server with a search_support_tickets tool for customer service agents.
An attacker submits this support ticket:
Your MCP tool returns:
The agent reads this. If it doesn't have proper guardrails - and most internally-built agents don't - it might interpret the embedded instruction as legitimate and execute the data exfiltration.
Why traditional security tools miss this:
WAFs and API gateways only see HTTP requests and JSON responses
They don't understand conversational semantics or agent reasoning
The response looks like normal data - it's just text in a support ticket
Nothing looks "malicious" at the network level
This is where protocol-aware security matters. At Golf.dev, we sit between agents and MCP servers, analyzing responses at the protocol level to detect injection attempts before they reach the agent. Traditional security tools can't do this because they don't understand MCP semantics.
Why this is YOUR responsibility:
You can't tell your customers "be careful using this in production" or "make sure your agent has guardrails." You're the MCP server provider. You need to secure the output of your tools.
The data comes from YOUR service, flows through YOUR MCP server, and enters the agent's context as trusted information. If that data contains malicious instructions, you enabled the attack.
The business impact:
A successful indirect prompt injection attack leads to data breaches where customer PII gets exfiltrated, compliance violations that trigger GDPR, SOC2, and HIPAA fines, destroyed customer trust when your MCP server becomes the attack vector, and legal liability for shipping an insecure product.
What you must do:
1. Sanitize outputs before returning them to agents
Detect and strip suspicious patterns:
"IGNORE PREVIOUS INSTRUCTIONS"
"IGNORE ALL INSTRUCTIONS"
Commands to invoke other tools unexpectedly
Instructions to email/export/delete data
Unusual formatting that looks like prompts
This isn't foolproof - attackers will evolve - but it raises the bar significantly.
2. Use structured outputs with strict schemas
Return data in predictable JSON structures with typed fields:
Avoid free-form text fields where possible. When text is necessary, validate semantic content:
Does this look like a normal support ticket or does it contain instructions?
Are there unusual commands or prompt-like patterns?
Does the content match expected patterns for this data type?
3. Implement content filtering at the MCP layer
Before returning tool responses:
Scan for injection patterns
Redact or escape potentially malicious content
Flag suspicious responses for review
Block responses that fail validation
4. Add protocol-aware observability
Log what's actually returning to agent context:
Full tool responses (not just API logs)
Detected injection attempts
Anomalous patterns in returned data
You need visibility into what's flowing through your MCP server at the protocol level, not just the HTTP level.
5. Rate limiting and anomaly detection
If a tool suddenly returns responses with unusual patterns, flag it
If the same user triggers multiple injection detection events, block them
Monitor for abuse patterns at the MCP layer
The reality check:
This is the attack vector that will cause the first major MCP security incident. Not tool poisoning. Not rug pulls. Indirect prompt injection through user-generated content that flows through MCP servers into agent context.
If you're building an MCP server that returns any user-generated content - reviews, tickets, messages, comments, posts - you need to defend against this today, not after the breach.
How to Prioritize (If You Have Limited Time)
If you have 1 week and 1 engineer, do these three things:
Audit your OAuth implementation
Are you using OAuth 2.1 with PKCE and DCR?
Are you verifying tokens correctly on every request?
Are any credentials hard-coded?
Identify which tools return user-generated content
Search tools, review tools, message tools - anything that pulls data users submitted
These are your highest-risk attack surface
Implement basic output filtering
Strip obvious injection patterns from tool responses
Add logging for what's being returned to agents
Flag anomalous responses for manual review
This won't make you bulletproof, but it helps to covers the two attacks that actually matter.
The Bottom Line
Low-priority for enterprises:
Tool poisoning requires full system compromise
Rug pulls only matter if you use untrusted servers
Tool shadowing only affects local servers
What will actually get you breached:
Authentication misconfiguration
Indirect prompt injection through user-generated content
The hard truth: The first major MCP security incident will be prompt injection. An attacker will poison a support ticket, product review, or calendar invite. An MCP server will return it. An agent will execute it. Customer data will leak.
Don't be that company.
Need Help Securing Your MCP Server?
At Golf.dev, we provide protocol-aware security for MCP servers - sitting between agents and your server to detect prompt injection attempts in real-time, validate outputs, and provide MCP-layer audit trails.
We handle the output validation and anomaly detection so your team can focus on building your product, not debugging security incidents.
Let's talk about your MCP security →
Wojciech Blaszak is CEO & Co-founder of Golf.dev, providing firewall for MCP servers.
The agent-native shift has started.
We’re onboarding early teams now - first come, first served. Build the future before it builds around you.

