Follow Cyber Kendra on Google News! | WhatsApp | Telegram

Add as a preferred source on Google

Anthropic's MCP Design Flaw Enables Remote Code Execution Across 200,000+ AI Servers

A critical architectural flaw in Anthropic's MCP SDK enables command execution across 200K+ servers, triggering 10+ CVEs in LangFlow, LiteLLM etc

A single architectural decision baked into Anthropic's Model Context Protocol has quietly turned the backbone of the AI agent ecosystem into a remote code execution (RCE) machine — one that ran undetected across more than 200,000 servers, 150 million downloads, and dozens of tools that millions of developers trust every day.

OX Security researchers disclosed the findings today in a report they're calling "The Mother of All AI Supply Chains" — the result of a months-long investigation that began in November 2025 and produced over 30 responsible disclosures, 10+ Critical and High CVEs, and direct proof-of-concept exploitation on six live production platforms with real paying customers.

The Root Cause: A Design Choice, Not a Coding Mistake

The vulnerability lives inside Anthropic's modelcontextprotocol SDK — specifically its STDIO interface, which is designed to launch local server processes and hand control to an AI model. The problem is that the underlying process execution logic runs any OS command passed to it, regardless of whether that command actually starts a valid MCP server. If the fake server fails to start, the code returns an error — but the command still executes. No sanitisation. No warning to the developer. Nothing.

MCP STDIO Process Execution Behaviour | Image- OX Security

This isn't a typo in someone's codebase. It's present across every language Anthropic officially supports: Python, TypeScript, Java, Kotlin, C#, Go, Ruby, Swift, PHP, and Rust. Any developer who builds on the MCP foundation inherits the exposure automatically, whether they know it or not.

How Bad Did It Get? Researchers Showed RCE on Live Platforms

OX researchers identified four distinct exploitation families and demonstrated each one in the wild.

On LangFlow — an IBM-owned open-source automation framework with over 915 publicly accessible instances on Shodan — attackers don't even need an account. A session token is freely available to any unauthenticated visitor. Researchers used it to push a malicious MCP STDIO configuration, enabling a full server takeover. The flaw was reported in January 2026; it took until March 18 for LangFlow maintainers to formally acknowledge it.

On Letta AI (app.letta.com), a production platform for building stateful AI agents, researchers intercepted a "Test Connection" network request via a man-in-the-middle proxy, replaced the HTTP payload with a STDIO configuration, and executed arbitrary commands directly on Letta's production servers.

Flowise had actually tried to prevent this — they restricted allowed commands and stripped special characters. Researchers bypassed it in a single step: passing arbitrary commands through npx's -c flag, which Flowise permitted. The lesson, the researchers note, is that ad-hoc input filtering is meaningless when the underlying architecture allows arbitrary subprocess execution.

The fourth attack family targets developers directly. AI-powered IDEs, including Windsurf, Cursor, Claude Code, Gemini-CLI, and GitHub Copilot, all support MCP configuration files that AI agents can modify. 

Windsurf was the most severe: a victim visiting a malicious website could have arbitrary commands executed on their local machine without a single click of approval, earning CVE-2026-30615. The other IDEs require at least one user interaction before the MCP config file is modified — enough for vendors like Anthropic and Microsoft to classify the behaviour as "by design."

Family CVE ID Product Attack Vector Severity Status
Direct UI InjectionIn ProgressLangFlowUnauthenticated UI injection via tokenCriticalReported
Direct UI InjectionCVE-2025-65720GPT ResearcherUI injection / reverse shellCriticalReported
Direct UI InjectionCVE-2026-30623LiteLLMAuthenticated RCE via JSON configCriticalPatched
Direct UI InjectionCVE-2026-30624Agent ZeroUnauthenticated UI injectionCriticalReported
Direct UI InjectionUnassignedLangBotUnauthenticated UI injectionCriticalReported
Direct UI InjectionUnassignedUndisclosed 3Authenticated UI injectionCriticalPatched
Direct UI InjectionCVE-2026-30618Fay FrameworkUnauthenticated Web-GUI RCECriticalReported
Direct UI InjectionCVE-2026-33224BishengAuthenticated UI injection (Open Registration)CriticalPatched
Direct UI InjectionCVE-2026-30617Langchain-ChatchatUnauthenticated UI injectionCriticalReported
Direct UI InjectionCVE-2026-33224JaazUnauthenticated UI injectionCriticalReported
Direct UI InjectionIn ProgressUndisclosed 1Unauthenticated UI injectionCriticalReported
Direct UI InjectionNo CVE IssuedFirebase StudioAuthenticated STDIO injectionCriticalReported
Direct UI InjectionNo CVE IssuedpromptfooUnauthenticated UI injectionCriticalReported
Direct UI InjectionNo CVE IssuedOpenHandsUnauthenticated UI injectionCriticalReported
Hardening BypassCVE-2026-30625UsopnicAllowlist bypass via npx/npm argsHighWarning
Hardening BypassGHSA-c9gw-hvqqFlowiseAllowlist bypass via npx -cHighPatched
Prompt InjectionCVE-2026-30615WindsurfZero-click prompt injection to local RCECriticalReported
Prompt InjectionNo CVE IssuedCursorPrompt injection (requires click)CriticalBy Design
Prompt InjectionNo CVE IssuedClaude CodePrompt injection (requires click)CriticalBy Design
Prompt InjectionNo CVE IssuedGemini-CLIPrompt injection (requires click)CriticalBy Design
Prompt InjectionNo CVE IssuedGitHub Copilot VScodePrompt injection (requires click)CriticalBy Design
Hidden STDIO ConfigCVE-2026-26015DocsGPTMITM transport-type substitutionCriticalPatched
Hidden STDIO ConfigUnassignedLettaAIMITM transport-type substitutionCriticalPatched
Hidden STDIO ConfigIn ProgressUndisclosed 2MCP STDIO Injection via Agent FrameworkCriticalReported
Root & Transport LayerNo CVE IssuedMCP (Anthropic)Injection via MCP transport layerCriticalReported
Root & Transport LayerNo CVE IssuedLangChainInjection via MCP transport layerCriticalReported
Root & Transport LayerNo CVE IssuedFastMCPInjection via MCP transport layerCriticalReported
Root & Transport LayerNo CVE Issuedbrowser-useInjection via MCP transport layerCriticalReported
Root & Transport LayerNo CVE Issuedawslabs Run MCP (AWS Lambda)Injection via MCP transport layerCriticalReported
Root & Transport LayerNo CVE IssuedNVIDIA NeMo Agent ToolkitInjection via MCP transport layerCriticalReported

Anthropic Was Told. It Said No.

OX contacted Anthropic on January 7, 2026. The response: expected behaviour. Anthropic did update its SECURITY.md file nine days later to clarify that STDIO adapters should be used with caution — but made no architectural changes. OX notified Anthropic of its intent to publish; Anthropic raised no objection.

Meanwhile, the researchers uploaded a proof-of-concept malicious MCP server to 11 major MCP marketplaces. Nine accepted it without any security review. Only GitHub's managed registry blocked the submission.

What You Should Do Now

If you run any MCP-enabled service, the immediate steps are: never expose these services to public IP addresses, treat any user input that reaches STDIO configuration as untrusted, sandbox MCP processes with restricted permissions, and install updates for any affected service that has issued a patch. LiteLLM (CVE-2026-30623), DocsGPT (CVE-2026-26015), Flowise, and Bisheng have been patched; LangFlow, Agent Zero, Fay Framework, and others remain reported but unresolved at the application layer. The root vulnerability in Anthropic's protocol itself remains open.

Post a Comment