Blog
About

AI in the enterpriseAnalysis

MCP lets an AI agent run commands; up to 200,000 servers would run an attacker's too

How the Model Context Protocol lets an AI agent call tools, why its local mode runs any command it is given, and five controls to set, from OX Security's research of 15 April 2026.

Illustration: The TechBag Journal

MCP is about 16 months old and already sits under most AI assistants a business touches. Anthropic open-sourced it on 25 November 2024 as “a new standard for connecting AI assistants to the systems where data lives”.4 By December 2025 Anthropic counted more than 10,000 active public MCP servers and 97 million monthly SDK downloads, with ChatGPT, Gemini, Microsoft Copilot, Cursor and Visual Studio Code among the adopters.5 If your developers use an AI coding assistant, or someone has connected a chatbot to your CRM or ticket queue, MCP is probably involved. The question this piece answers: what actually happens when an agent “uses a tool”, why a security firm can say that the same machinery runs an attacker’s commands, and what a company should set so its own agents cannot be turned.

01What MCP is: a menu of tools and a way to order from it

Three parties take part. The model is the language model that reads and writes text. The client is the application you type into, such as a chat assistant or a coding editor. A server is a small program that offers tools: “search deals”, “create ticket”, “run query”. In the specification’s words, tools “enable models to interact with external systems, such as querying databases, calling APIs, or performing computations.”7

The model never touches your CRM itself. It reads a menu of tool names and descriptions, picks one, and fills in the order form. The client delivers the order; the server does the work with whatever access it was given. Tools are “model-controlled”, the specification says: the model decides when to call them.7

The model only chooses; the server acts, with the server's own access

One request through MCP, step by step, as the protocol specification (version 2025-11-25) defines it

Step 1 of 6

1. You ask a question

“Which of my deals closing this month have no follow-up booked?” You type it into the client: a chat assistant or a coding editor.

Source: Model Context Protocol specification, version 2025-11-25: Tools; Transports · as of 15 April 2026 · The example request is ours. Method names (tools/list, tools/call) are the specification's.

Step 6 matters later. The model cannot tell an instruction from data: a web page or document a tool fetches can carry text that reads like an order, and the model may act on it. That is prompt injection, and it is one of the four routes OX documents.3

02Where a configuration line becomes a command

MCP defines two standard ways for a client to reach a server.6 With Streamable HTTP, the server is a web service somewhere, reached at an address such as https://example.com/mcp. With STDIO, the server is a program on the same machine: “The client launches the MCP server as a subprocess,” then talks to it through the program’s standard input and output. The specification adds that “Clients SHOULD support stdio whenever possible.”6

To launch that program, the client needs to know what to run, so each STDIO server is a configuration entry holding a command and its arguments. OX’s intended example is python myapp.py. Its malicious one is rm -rf /, which deletes everything the process can reach.2 The client does not check that the command is an MCP server before running it. In OX’s words, “if the command successfully creates an STDIO server it will return the handle, but when given a different command, it returns an error after the command is executed.”2

The check comes after the command has already run

How an MCP client starts a local (STDIO) server from its configuration, as described by OX Security, 15 April 2026

  1. 01

    A configuration entry names a command

    For example python myapp.py: a program and its arguments, typed by a user or sent in a request.

  2. 02

    The client starts it

    The command runs as a subprocess on the machine, with the permissions of the account running the client.

  3. 03

    Whatever it is, it runs

    A real MCP server answers. A download-and-run script, a reverse shell or rm -rf / simply executes.

  4. 04

    Then the error

    If no MCP server answered, the client reports a failure. The damage is already done.

Source: OX Security, technical deep dive (15 April 2026); MCP specification 2025-11-25, Transports · as of 15 April 2026

03What OX Security found: 17 products, four routes, most unpatched

OX Security’s research team published three documents on 15 April: an overview, a technical deep dive and a disclosure advisory.123 It calls the issue an architectural design decision in Anthropic’s official MCP SDKs, present across Python, TypeScript, Java and Rust, rather than a coding error. It reports 150 million-plus downloads of the affected software, more than 7,000 publicly reachable servers, and more than 200 open-source projects touched; it ran commands on six live production platforms.1

200,000

MCP instances OX Security estimates could be taken over, as an upper bound

“Up to”, in OX’s words; the counted figure is the 7,000-plus publicly reachable servers.1

The advisory sorts the cases into four routes by which an attacker’s input reaches the configuration entry.3 Command injection through the interface (11 products): a web console such as LangFlow, GPT Researcher, Agent Zero, Langchain-Chatchat or Fay数字人 (Fay Digital Human) lets a visitor add an “MCP server” with any command, in several cases without logging in. Hardening bypass (2): Flowise and Upsonic allowed only npx and npm, but those accept flags that run anything; OX’s payload was npx -c.2 Prompt injection (1): in the Windsurf editor, a malicious web page tells the agent to edit its own mcp.json, with no click from the user, CVE-2026-30615. Hidden STDIO configurations (3): a request quietly switches a connection’s type from web to STDIO, as in DocsGPT and LettaAI.3 Separately, OX says 9 of 11 MCP registries accepted its test package.1

On the day of disclosure, 13 of the 17 products had no fix stated

Products in OX Security's MCP advisory by fix status, 15 April 2026

13 of 17no fix stated
  • No fix stated13 products 76%
  • Fixed (release or hosted service)3 products 18%
  • Warning added, no fix1 products 6%
Table view
Value (products)Share
No fix stated1376%
Fixed (release or hosted service)318%
Warning added, no fix16%

Source: OX Security, MCP supply chain advisory: RCE vulnerabilities across the AI ecosystem · as of 15 April 2026 · TechBag's tally of the advisory's 17 entries. Fixed: LiteLLM (v1.83.7-stable) in a release; DocsGPT and LettaAI on their hosted services only. Warning: Upsonic added a prompt, no fix.

04“Expected”: why the protocol will not change, and who that leaves holding it

OX asked Anthropic to change the design so that developers pre-configure the allowed commands and user input only chooses from that list.2 According to OX, Anthropic “declined to modify the protocol’s architecture, citing the behavior as ‘expected’”, and said the STDIO model is a secure default and sanitisation is the developer’s responsibility.1 We have no statement from Anthropic itself to set beside that account.

Anthropic was not alone. OX names 13 rejected disclosures, among them LangChain’s MCP adapters, FastMCP, AWS Labs, NVIDIA’s NeMo Agent Toolkit, Gemini CLI, Claude Code, GitHub Copilot, Cursor and Firebase Studio. The reasons given: the tool is designed to let the user run code; transport code is not liable for how developers use it; or the code already runs inside a sandbox. OX accepts the sandbox point and answers that a sandboxed attacker can still mine cryptocurrency, proxy traffic and take free compute.3 Nor is the class new: OX lists five earlier CVEs from other researchers on the same root cause in 2025 and 2026, including MCP Inspector (CVE-2025-49596) and Cursor (CVE-2025-54136).3

Sixteen months from launch to a protocol-level finding the maintainers call by design

MCP milestones and OX Security's disclosure, November 2024 to 15 April 2026

Nov 2024Anthropic open-sources MCP
Nov 2025Specification 2025-11-25
Dec 2025MCP moves to the Linux Foundation
Jan 2026OX discloses the LangFlow flaw
Mar 2026LangFlow acknowledges
Apr 2026OX publishes
Table view
DateEventDetail
Nov 2024Anthropic open-sources MCPA standard to connect assistants to where data lives
Nov 2025Specification 2025-11-25Clients SHOULD support STDIO whenever possible
Dec 2025MCP moves to the Linux FoundationAgentic AI Foundation; 10,000+ public servers
Jan 2026OX discloses the LangFlow flawUnauthenticated; all versions affected
Mar 2026LangFlow acknowledgesInside OX's GitHub advisory report, after two months
Apr 2026OX publishes17 products, 13 rejected disclosures named

Source: Anthropic (25 Nov 2024; 9 Dec 2025); MCP specification 2025-11-25; OX Security (15 Apr 2026) · as of 15 April 2026 · The LangFlow dates are the one disclosure OX dates in public; the others are not dated in its documents.

05Five controls a company sets, whatever its agents run on

Each control below removes something an attack in OX’s set relied on; most are OX’s own recommendations, and none needs the protocol to change.1

Every route OX documents depends on something a company can take away

What the attacks in OX Security's research relied on, and the control that removes each, 15 April 2026

What the attack needed

  • Any command accepted in a configuration entry
  • A server process with full disk and shell access
  • An AI tool’s console reachable from the internet
  • A server package nobody vetted
  • An outbound connection to the attacker

The control that removes it

  • Allowlist: users pick from pre-set commands, checked with their arguments
  • Sandbox: a container with no host disk, shell or secrets
  • No public exposure: local servers bind to localhost; consoles behind login
  • Verified registry: an internal approved list, pinned versions
  • Egress monitoring: tool calls logged, unknown destinations blocked

Source: OX Security overview and technical deep dive (15 April 2026); MCP specification 2025-11-25 · as of 15 April 2026

  1. Allowlist the commands, with their arguments. OX’s advice is to block external configuration input entirely or let it choose only “trusted pre-configured commands.”1 Flowise is the warning: it allowed npx by name and was beaten by npx -c, so a list must fix the whole command line, not the program name.2
  2. Sandbox every server. Run MCP servers in a container or virtual machine and do not give them full disk or shell access unless the job needs it.1 Keep cloud keys and session tokens out of the sandbox, since a server that is taken over can read whatever it holds.
  3. Keep AI tool consoles off the internet. OX found more than 915 LangFlow instances on Shodan.2 The specification already says a local server “SHOULD bind only to localhost” and that servers “SHOULD implement proper authentication.”6 Put admin consoles behind single sign-on or a VPN.
  4. Install only from a verified registry. OX says to install servers only from official directories, yet 9 of 11 registries took its test package.1 Keep an internal list of approved servers at pinned versions, and treat a new server like any new software.
  5. Watch what leaves. Monitor tool invocations and block suspicious outbound addresses.1 A reverse shell, a payload download and data theft all need an outbound connection; the specification already asks clients to “log tool usage for audit purposes.”7

Then patch what can be patched. LiteLLM is fixed in v1.83.7-stable; for products with no fix, OX’s advice is not to expose them to user input, or to switch them off until a fix ships.13

Sources

  1. OX Security, The Mother of All AI Supply Chains: critical, systemic vulnerability at the core of Anthropic's MCP — 15 April 2026
  2. OX Security, The Mother of All AI Supply Chains: technical deep dive (STDIO payloads, LangFlow, Flowise, Windsurf) — 15 April 2026
  3. OX Security, MCP supply chain advisory: RCE vulnerabilities across the AI ecosystem (17 products, rejected disclosures) — 15 April 2026
  4. Anthropic, Introducing the Model Context Protocol — 25 November 2024
  5. Anthropic, Donating the Model Context Protocol and establishing the Agentic AI Foundation — 9 December 2025
  6. Model Context Protocol specification, version 2025-11-25: Transports — 25 November 2025
  7. Model Context Protocol specification, version 2025-11-25: Tools — 25 November 2025
  8. CERT-In, Directions under section 70B(6) of the IT Act (six-hour reporting, Annexure I, 180-day logs) — 28 April 2022
  9. DPDP Rules, 2025, Rule 6 (reasonable security safeguards, logs kept one year) — notified 13 November 2025
  10. MeitY, Digital Personal Data Protection Act, 2023 (Schedule penalties) and DPDP Rules, 2025 (substantive duties from 13 May 2027) — 13 November 2025

Related on TechBag: the developer tools guide covers the coding environments where MCP servers are most often installed; the cloud workload security guide covers the container controls behind a sandbox; the secure web and DNS guide covers the gateways that see and block outbound traffic.

Disclosure. TechBag is a software reseller: it earns a margin when a reader buys through it, including from vendors named here. The analysis is TechBag’s own; no vendor paid for or saw this piece before publication. Facts are labelled reported, TechBag count or our view.