The Vulnerable MCP Project

A community-maintained database of known vulnerabilities, limitations, and security concerns with the Model Context Protocol (MCP)

Recently Discovered Issues

Tool Poisoning Attacks
High

A specialized form of prompt injection where malicious instructions are tucked away in the tool descriptions themselves—visible to the LLM but not normally displayed to users. Attackers can create tools with hidden instructions that cause the LLM to perform unauthorized actions, such as exfiltrating private data from the user's system. For example, a seemingly innocent calculator tool could include hidden instructions telling the LLM to read sensitive files and pass their contents as a parameter, which is then sent to an attacker's server before returning the calculation result.

Data Exfiltration Prompt Injection Hidden Instructions
April 1, 2025 Invariant Labs
View Details
Rug Pulls: Silent Redefinition
High

MCP tools can mutate their own definitions after installation. Users approve a safe-looking tool initially, but later the tool quietly changes its behavior to perform malicious actions such as rerouting API keys to an attacker. Most MCP clients do not notify users about changes to tool descriptions after initial approval, making this particularly dangerous. Even client implementations that show users initial tool descriptions often fail to alert them if those descriptions change.

Tool Manipulation Bait and Switch API Exploitation
April 9, 2025 Simon Willison
View Details
Cross-Server Tool Shadowing
High

With multiple servers connected to the same agent, a malicious server can override or intercept calls made to a trusted one. This is especially problematic because LLMs will trust anything that can send them convincing tokens, making them extremely vulnerable to confused deputy attacks. This vulnerability allows attackers to effectively control legitimate tools by intercepting or redirecting calls intended for them, potentially leading to unauthorized actions or data access.

Tool Hijacking Server Interactions Confused Deputy
April 9, 2025 Simon Willison
View Details
WhatsApp Message Exfiltration
High

An attack against the whatsapp-mcp server that connects personal WhatsApp accounts to MCP-enabled LLM systems. A malicious server can define an innocent-looking tool that later swaps its definition to steal message history and send it to the attacker. The attack uses techniques like adding large amounts of whitespace before the exfiltrated data to hide it from the user interface (as many interfaces hide horizontal scrollbars by default), making it less likely users will notice what's happening.

Data Exfiltration Message Hijacking Deceptive UI
April 7, 2025 Invariant Labs
View Details
Session IDs Exposed in URLs
Medium

The MCP protocol specification mandates session identifiers in URLs (using patterns like GET /messages/?sessionId=UUID), which fundamentally violates security best practices. This design exposes sensitive identifiers in logs, browser history, and referrer headers, allowing potential session hijacking by attackers. This vulnerability is built into the protocol design itself rather than being an implementation error, making it harder to address without protocol modifications.

Session Management Protocol Design Session Hijacking
March 29, 2025 Equixly
View Details
Line Jumping Attack
High

Malicious MCP servers can inject prompts through tool descriptions to manipulate AI model behavior without being explicitly invoked, effectively bypassing security measures designed to protect users. This vulnerability exploits the fact that MCP clients update the model's context with tool descriptions immediately upon connection, before any user approval or tool invocation occurs. The attack allows malicious servers to execute attacks before any security checkpoints are in place, undermining MCP's core security promises. For example, a malicious server could include instructions in its tool description to prefix all shell commands with dangerous operations.

Prompt Injection Tool Description Security Bypass
April 21, 2025 Trail of Bits
View Details
Malicious Local Servers
Medium

MCP's stdio transport enables frictionless local server use without running an HTTP server, creating a low-friction path for less technical users to download and run potentially malicious third-party code on their local machines. Many MCP integrations instruct users to download and run code to use them, increasing the risk of exploitation, especially since it's common for server implementations to effectively "exec" input code. This changes the traditional security model where users must explicitly approve code execution.

Local Server Code Execution User Trust
April 2025 Shrivu Shankar
View Details
Consent Fatigue Attacks
Medium

Malicious MCP servers can trigger repeated consent requests, causing users to become fatigued and unknowingly grant excessive permissions. This social engineering tactic exploits human behavior patterns to bypass security measures that rely on user confirmation. The attack takes advantage of users' tendency to approve prompts without careful review when they appear frequently, gradually increasing the permissions granted to malicious servers.

User Consent Social Engineering Permissions
April 2025 Palo Alto Networks
View Details
Tool Name Collisions
Medium

MCP servers with identical tool names can lead to naming collisions where malicious servers override legitimate ones. When multiple servers expose tools with the same name, the behavior depends on client implementation, often favoring the most recently connected server. This vulnerability can be exploited by malicious servers to hijack legitimate tool functionality, redirecting actions intended for trusted tools to malicious endpoints.

Naming Conflicts Tool Overriding Confused Deputy
April 2025 Various (cited in "Embracethered" blog)
View Details
Insecure Credential Storage Plagues MCP
High

Many examples of MCP software store long-term API keys for third-party services in plaintext on the local filesystem, often with insecure, world-readable permissions. This practice is widespread in the MCP ecosystem, observed in multiple tools from official servers connecting to GitLab, Postgres, and Google Maps, to third-party connectors. This vulnerability leaves users one file disclosure away from having their API keys stolen and their third-party service data compromised. Local malware, arbitrary file read vulnerabilities, and automated cloud backups all provide easy pathways for attackers to extract these credentials without needing complex exploits.

Credential Management API Keys Plaintext Storage
April 30, 2025 Keith Hoodlet (Trail of Bits)
View Details
Deceiving Users with ANSI Terminal Codes in MCP
High

Attackers can use ANSI terminal escape codes to hide malicious instructions in MCP tool descriptions and outputs, making them invisible on the screen while still being processed by the LLM. This technique leverages the line jumping vulnerability to further deceive even security-aware users. In tests with Claude Code (Anthropic's command-line interface), researchers found no filtering or sanitization for tool descriptions containing ANSI escape sequences. This allows attackers to launch supply chain attacks by injecting hidden suggestions to download packages from malicious servers, planting backdoors in dependencies, or manipulating development environments without users noticing.

Terminal Escapes Hidden Instructions UI Deception
April 29, 2025 Keith Hoodlet (Trail of Bits)
View Details
How MCP Servers Can Steal Your Conversation History
High

Malicious MCP servers can exploit the Model Context Protocol to covertly exfiltrate entire conversation histories by injecting trigger phrases into tool descriptions. Unlike direct command execution, which can be crude and easily detectable, this stealth approach allows for targeted data theft with minimal chance of detection. The attack works by inserting tool descriptions that instruct the model to forward the conversation history when the user types a common phrase like "thank you." Since these histories often contain sensitive information like API keys, credentials, intellectual property, and proprietary business strategies, this vulnerability allows attackers to passively collect valuable data over extended periods without triggering suspicion.

Data Exfiltration Conversation History Trigger Phrases
April 23, 2025 Keith Hoodlet (Trail of Bits)
View Details
Tool Poisoning Attacks
Security
April 1, 2025
Rug Pulls: Silent Redefinition
Security
April 9, 2025
Cross-Server Tool Shadowing
Security
April 9, 2025
WhatsApp Message Exfiltration
Security
April 7, 2025
Session IDs Exposed in URLs
Security
March 29, 2025
Line Jumping Attack
Security
April 21, 2025
Malicious Local Servers
Security
April 2025
Consent Fatigue Attacks
Security
April 2025
Tool Name Collisions
Implementation
April 2025
Insecure Credential Storage Plagues MCP
Security
April 30, 2025
Deceiving Users with ANSI Terminal Codes in MCP
Security
April 29, 2025
How MCP Servers Can Steal Your Conversation History
Security
April 23, 2025