SAFE-MCP: Security Analysis Framework for Evaluation of Model Context Protocol

April 29, 2026 ยท View on GitHub

SIG-SAFE-MCPDetails
Mailing Listopenssf-sig-safe-mcp@lists.openssf.org
SIG LeadsSarah Evans; Frederick Kautz
Meeting Time1:00 PM PT (PST/PDT) Bi-Weekly
SlackOpenSSF #sig-safe-mcp

About SAFE-MCP

SAFE-MCP is a comprehensive security framework for documenting and mitigating threats in the Model Context Protocol (MCP) ecosystem. This framework adapts the proven MITRE ATT&CK methodology specifically for MCP environments, providing structured documentation of adversary tactics, techniques, and procedures (TTPs) that target MCP implementations and AI-powered applications.

Key Features

  • MITRE ATT&CK Alignment: We use patterns and methodologies from the MITRE ATT&CK Framework, explicitly targeting MCP-specific threats while maintaining compatibility with established security practices.
  • Compliance Mapping: Each SAFE-MCP technique links to corresponding MITRE ATT&CK techniques where applicable, helping organizations determine compliance with existing security frameworks and controls.
  • Comprehensive Coverage: Documenting attack techniques across 14 tactical categories, from initial access to impact, with continuous additions as new threats emerge.
  • Actionable Mitigations: Each technique includes detailed mitigation strategies and detection rules to help defenders protect their MCP deployments.

How to Use This Framework

  1. Security Teams: Use the TTP reference table below to understand potential threats to your MCP implementation
  2. Developers: Review techniques relevant to your MCP tools and implement recommended mitigations
  3. Compliance Officers: Map SAFE-MCP techniques to your existing security controls via MITRE ATT&CK linkages
  4. Red Teams: Reference attack techniques for security testing of MCP deployments

TTP Reference Table

This table provides a comprehensive reference of all Tactics, Techniques, and Procedures (TTPs) defined in the SAFE-MCP framework.

SAFE-MCP Tactics

The SAFE-MCP framework defines 14 tactics that align with the MITRE ATT&CK methodology:

Tactic IDTactic NameDescription
ATK-TA0043ReconnaissanceThe adversary is trying to gather information they can use to plan future operations
ATK-TA0042Resource DevelopmentThe adversary is trying to establish resources they can use to support operations
ATK-TA0001Initial AccessThe adversary is trying to get into your MCP environment
ATK-TA0002ExecutionThe adversary is trying to run malicious code via MCP
ATK-TA0003PersistenceThe adversary is trying to maintain their foothold in MCP
ATK-TA0004Privilege EscalationThe adversary is trying to gain higher-level permissions
ATK-TA0005Defense EvasionThe adversary is trying to avoid being detected
ATK-TA0006Credential AccessThe adversary is trying to steal account names and passwords
ATK-TA0007DiscoveryThe adversary is trying to figure out your MCP environment
ATK-TA0008Lateral MovementThe adversary is trying to move through your environment
ATK-TA0009CollectionThe adversary is trying to gather data of interest
ATK-TA0011Command and ControlThe adversary is trying to communicate with compromised systems
ATK-TA0010ExfiltrationThe adversary is trying to steal data
ATK-TA0040ImpactThe adversary is trying to manipulate, interrupt, or destroy systems and data

TTP Overview

Tactic IDTactic NameTechnique IDTechnique NameDescription
ATK-TA0043ReconnaissanceNo MCP-specific techniques currently documented
ATK-TA0042Resource DevelopmentSAFE-T2107AI Model Poisoning via MCP Tool Training Data ContaminationAttackers contaminate training data used to develop AI models for MCP tools, implanting backdoors that activate during specific conditions
ATK-TA0001Initial AccessSAFE-T1001Tool Poisoning Attack (TPA)Attackers embed malicious instructions within MCP tool descriptions that are invisible to users but processed by LLMs
ATK-TA0001Initial AccessSAFE-T1002Supply Chain CompromiseDistribution of backdoored MCP server packages through unofficial repositories or compromised legitimate sources
ATK-TA0001Initial AccessSAFE-T1003Malicious MCP-Server DistributionAdversary ships a trojanized server package or Docker image that users install, gaining foothold when the host registers its tools
ATK-TA0001Initial AccessSAFE-T1004Server Impersonation / Name-CollisionAttacker registers a server with the same name/URL as a trusted one, or hijacks discovery, so the client connects to them instead
ATK-TA0001Initial AccessSAFE-T1005Exposed Endpoint ExploitMisconfigured public MCP endpoints (no auth, debug on) let attackers connect, enumerate tools or trigger RCE
ATK-TA0001Initial AccessSAFE-T1006User-Social-Engineering InstallPhishing/social posts persuade developers to "try this cool tool"; the installer silently registers dangerous capabilities
ATK-TA0001Initial AccessSAFE-T1007OAuth Authorization PhishingMalicious MCP servers exploit OAuth flows to steal access tokens from legitimate services by tricking users during authorization
ATK-TA0001Initial AccessSAFE-T1008Tool Shadowing AttackMalicious MCP servers impersonate or interfere with legitimate tools to hijack execution within MCP-based workflows through cross-server tool interference
ATK-TA0001Initial AccessSAFE-T1009Authorization Server Mix-upClient follows redirect to look-alike AS domain (e.g., accounts-google.com vs accounts.google.com), causing authorization codes or tokens to be leaked to attacker-controlled server
ATK-TA0002ExecutionSAFE-T1101Command InjectionExploitation of unsanitized input in MCP server implementations leading to remote code execution
ATK-TA0002ExecutionSAFE-T1102Prompt Injection (Multiple Vectors)Malicious instructions injected through various vectors to manipulate AI behavior via MCP
ATK-TA0002ExecutionSAFE-T1103Fake Tool Invocation (Function Spoofing)Adversary forges JSON that mimics an MCP function-call message, tricking the host into running a tool that was never offered
ATK-TA0002ExecutionSAFE-T1104Over-Privileged Tool AbuseLegit tool (e.g. "Shell") runs with broader OS rights than necessary; LLM can be induced to perform arbitrary commands
ATK-TA0002ExecutionSAFE-T1105Path Traversal via File ToolFile-handling tool accepts relative paths like ../../secret.key; attacker leaks host secrets
ATK-TA0002ExecutionSAFE-T1106Autonomous Loop ExploitCraft prompts that push an agent into infinite "self-invoke" loop to exhaust CPU or hit rate limits (DoS)
ATK-TA0002ExecutionSAFE-T1109Debugging Tool ExploitationBrowser-based remote code execution via vulnerable MCP Inspector (CVE-2025-49596)
ATK-TA0002ExecutionSAFE-T1110Multimodal Prompt Injection via Images/AudioEmbedding malicious instructions within image or audio content to manipulate multimodal AI behavior
ATK-TA0002ExecutionSAFE-T1111AI Agent CLI WeaponizationMalicious exploitation of AI coding assistant CLI tools with dangerous flags for reconnaissance and data exfiltration
ATK-TA0002ExecutionSAFE-T1112Sampling Request AbuseMalicious or compromised MCP servers abuse sampling/createMessage to drain model quota, bias nested reasoning, or pivot into sensitive tool-enabled actions during otherwise legitimate flows
ATK-TA0003PersistenceSAFE-T1201MCP Rug Pull AttackTime-delayed malicious tool definition changes after initial approval
ATK-TA0003PersistenceSAFE-T1202OAuth Token PersistenceTheft and reuse of OAuth access/refresh tokens for persistent access to MCP-connected services, including replay of refresh tokens after legitimate client sessions end
ATK-TA0003PersistenceSAFE-T1203Backdoored Server BinaryInserts cron job or reverse shell on install; persists even if MCP service is uninstalled
ATK-TA0003PersistenceSAFE-T1204Context Memory ImplantMalicious agent writes itself into long-term vector store; re-loaded in every future session
ATK-TA0003PersistenceSAFE-T1205Persistent Tool RedefinitionAttacker modifies server's tool metadata to keep hidden commands across restarts
ATK-TA0003PersistenceSAFE-T1206Credential Implant in ConfigAdds attacker's API/SSH keys to server .env, giving re-entry
ATK-TA0003PersistenceSAFE-T1207Hijack Update MechanismMan-in-the-middle an auto-update channel to re-install malicious build later on
ATK-TA0003PersistenceSAFE-T2106Context Memory Poisoning via Vector Store ContaminationAttackers manipulate vector databases storing long-term memory for AI agents, creating persistent malicious content that contaminates knowledge across all future sessions
ATK-TA0004Privilege EscalationSAFE-T1301Cross-Server Tool ShadowingMalicious MCP servers override legitimate tool calls to gain elevated privileges
ATK-TA0004Privilege EscalationSAFE-T1302High-Privilege Tool AbuseInvoke a VM-level or root tool from normal user context
ATK-TA0004Privilege EscalationSAFE-T1303Sandbox Escape via Server ExecExploit vulnerable server to break container/seccomp isolation
ATK-TA0004Privilege EscalationSAFE-T1304Credential Relay ChainUse one tool to steal tokens, feed them to second tool with higher privileges
ATK-TA0004Privilege EscalationSAFE-T1305Host OS Priv-Esc (RCE)Achieve root via misconfigured service running as root, then alter host
ATK-TA0004Privilege EscalationSAFE-T1306Rogue Authorization ServerMalicious MCP server redirects OAuth flows to attacker-controlled AS that ignores audience restrictions and Proof of Possession (PoP), minting overly-permissive "super-tokens" with expanded scopes
ATK-TA0004Privilege EscalationSAFE-T1307Confused Deputy AttackMCP server receives token for one user (Alice) and forwards it to another user's (Bob) MCP instance, allowing Bob to perform actions as Alice by exploiting the server's trusted position
ATK-TA0004Privilege EscalationSAFE-T1308Token Scope SubstitutionAttacker swaps a limited-scope token with one that has broader permissions but same audience, exploiting insufficient scope validation to gain elevated privileges
ATK-TA0004Privilege EscalationSAFE-T1309Privileged Tool Invocation via Prompt ManipulationAdversary manipulates MCP agent prompts to bypass safety rules and invoke privileged tools
ATK-TA0005Defense EvasionSAFE-T1401Line JumpingBypassing security checkpoints through context injection before tool invocation
ATK-TA0005Defense EvasionSAFE-T1402Instruction SteganographyZero-width chars/HTML comments hide directives in tool metadata
ATK-TA0005Defense EvasionSAFE-T1403Consent-Fatigue ExploitRepeated benign prompts desensitize user; crucial request hidden mid-flow
ATK-TA0005Defense EvasionSAFE-T1404Response TamperingModel instructed not to mention risky action, keeping UI output "harmless"
ATK-TA0005Defense EvasionSAFE-T1405Tool Obfuscation/RenamingMalicious tool named "Utils-Helper" to blend in among 30 legit tools
ATK-TA0005Defense EvasionSAFE-T1406Metadata ManipulationStrip safety flags or lower risk scores in tool manifest before host logs it
ATK-TA0005Defense EvasionSAFE-T1407Server Proxy MasqueradeMalicious server silently proxies legit API so traffic looks normal in network logs
ATK-TA0005Defense EvasionSAFE-T1408OAuth Protocol DowngradeAttacker forces use of less secure OAuth 2.0 implicit flow instead of authorization code flow, bypassing PKCE protections and enabling easier token theft
ATK-TA0006Credential AccessSAFE-T1501Full-Schema Poisoning (FSP)Exploitation of entire MCP tool schema beyond descriptions for credential theft
ATK-TA0006Credential AccessSAFE-T1502File-Based Credential HarvestUse file tools to read SSH keys, cloud creds
ATK-TA0006Credential AccessSAFE-T1503Env-Var ScrapingAsk read_file for .env; exfil API secrets
ATK-TA0006Credential AccessSAFE-T1504Token Theft via API ResponsePrompt LLM to call "session.token" tool, then leak result
ATK-TA0006Credential AccessSAFE-T1505In-Memory Secret ExtractionQuery vector store for "api_key" embedding strings
ATK-TA0006Credential AccessSAFE-T1506Infrastructure Token TheftSteal OAuth/session tokens from logs, TLS termination proxies, or other infrastructure components where tokens may be inadvertently stored or exposed, then replay at intended service
ATK-TA0006Credential AccessSAFE-T1507Authorization Code InterceptionMan-in-the-browser attack steals OAuth authorization codes during the redirect flow and attempts to exchange them at the token endpoint before the legitimate client
ATK-TA0007DiscoverySAFE-T1601MCP Server EnumerationUnauthorized discovery and mapping of available MCP servers and tools
ATK-TA0007DiscoverySAFE-T1602Tool EnumerationCall tools/list to see available functions
ATK-TA0007DiscoverySAFE-T1603System Prompt DisclosureAdversaries attempt to extract internal system prompts and security policies governing AI agent behavior through multi-turn conversational attacks exploiting LLM sycophancy
ATK-TA0007DiscoverySAFE-T1604Server Version EnumerationGET /version or header analysis for vulnerable builds
ATK-TA0007DiscoverySAFE-T1605Capability MappingAsk "what can you do?"; model outlines high-value tools
ATK-TA0007DiscoverySAFE-T1606Directory Listing via File ToolList root dir to find sensitive paths
ATK-TA0008Lateral MovementSAFE-T1701Cross-Tool ContaminationUsing compromised MCP tools to access other connected services and systems
ATK-TA0008Lateral MovementSAFE-T1702Shared-Memory PoisoningWrite false tasks to shared vector DB so peer agents execute them
ATK-TA0008Lateral MovementSAFE-T1703Tool-Chaining PivotCompromise low-priv tool, then leverage it to call another privileged tool indirectly
ATK-TA0008Lateral MovementSAFE-T1704Compromised-Server PivotUse hijacked server as beachhead to infect other hosts in same IDE/workspace
ATK-TA0008Lateral MovementSAFE-T1705Cross-Agent Instruction InjectionInject directives in multi-agent message bus to seize control of cooperating agents
ATK-TA0008Lateral MovementSAFE-T1706OAuth Token Pivot ReplayAttacker reuses OAuth tokens across different services by exploiting either shared Authorization Server trust (e.g., GitHub token used at Slack) or Resource Servers that fail to validate audience claims, enabling unauthorized cross-service access
ATK-TA0008Lateral MovementSAFE-T1707CSRF Token RelayLeaked OAuth token is passed via Cross-Site Request Forgery to access different resources on the same Resource Server (e.g., pivoting between GCP projects under same Google AS)
ATK-TA0009CollectionSAFE-T1801Automated Data HarvestingSystematic data collection through manipulated MCP tool calls
ATK-TA0009CollectionSAFE-T1802File CollectionBatch-read sensitive files for later exfil
ATK-TA0009CollectionSAFE-T1803Database DumpUse SQL tool to SELECT * from prod DB
ATK-TA0009CollectionSAFE-T1804API Data HarvestLoop over customer REST endpoints via HTTP tool
ATK-TA0009CollectionSAFE-T1805Context Snapshot CaptureQuery vector store embeddings wholesale
ATK-TA0011Command and ControlSAFE-T1901Outbound Webhook C2LLM calls "http.post" to attacker URL with commands/results
ATK-TA0011Command and ControlSAFE-T1902Covert Channel in ResponsesEncode data in whitespace or markdown links returned to chat
ATK-TA0011Command and ControlSAFE-T1903Malicious Server Control ChannelAttacker operates rogue server; every tool call doubles as heartbeat
ATK-TA0011Command and ControlSAFE-T1904Chat-Based BackchannelLLM embeds base64 blobs in normal answers that another bot decodes
ATK-TA0010ExfiltrationSAFE-T1910Covert Channel ExfiltrationData smuggling through tool parameters, error messages, or legitimate-appearing operations
ATK-TA0010ExfiltrationSAFE-T1911Parameter ExfiltrationSneak secrets into unused JSON arg (note)
ATK-TA0010ExfiltrationSAFE-T1912Stego Response ExfilHide data in code blocks shown to user then copied elsewhere
ATK-TA0010ExfiltrationSAFE-T1913HTTP POST ExfilUse outbound web tool to POST to attacker server
ATK-TA0010ExfiltrationSAFE-T1914Tool-to-Tool ExfilChain two tools so second one emails data out
ATK-TA0010ExfiltrationSAFE-T1915Cross-Chain Laundering via Bridges/DEXsMulti-chain asset transfers using bridges and DEXs to obscure provenance and evade detection
ATK-TA0040ImpactSAFE-T2101Data Destructiondelete_file or drop_table commands wipe assets
ATK-TA0040ImpactSAFE-T2102Service DisruptionFlood external API causing rate-limit or DoS
ATK-TA0040ImpactSAFE-T2103Code SabotageAgent commits malicious PR into repo
ATK-TA0040ImpactSAFE-T2104Fraudulent TransactionsPayment-tool instructed to move funds
ATK-TA0040ImpactSAFE-T2105Disinformation OutputManipulate LLM to generate false or harmful content to downstream consumers
ATK-TA0040ImpactSAFE-T3001RAG Backdoor AttackImplanting covert triggers in RAG pipeline to manipulate retrieval and generation under specific conditions

Summary Statistics

  • Total Tactics: 14
  • Total Techniques: 85
  • Average Techniques per Tactic: 6.1

Tactic Distribution

TacticNumber of Techniques
Reconnaissance0
Resource Development1
Initial Access9
Execution10
Persistence8
Privilege Escalation9
Defense Evasion8
Credential Access7
Discovery6
Lateral Movement7
Collection5
Command and Control4
Exfiltration6
Impact6

Usage Guidelines

  • Use technique IDs (e.g., SAFE-T1001) for consistent reference across documentation
  • Map these techniques to your specific MCP deployment for risk assessment
  • Prioritize mitigation based on your threat model and the techniques most relevant to your environment
  • Regular review as new techniques emerge in the rapidly evolving MCP threat landscape