Skip to main content
Back to Blog
MCPShieldCortexsecurityCVEagents

Nine MCP command-injection CVEs, and why "local" misses the agent case

Drakon Systems··6 min read
Share:

On 27 October 2026, VulnCheck published nine CVE records against nine Model Context Protocol (MCP) servers. Eight are OS command injection. One is a permissive allowlist. Every injection record in the batch is scored with a local attack vector and low privileges required.

That scoring is correct on the CVSS form. It is a poor description of the agent case.

What was published

The nine records, as summarised by Severity Daily:

CVEProject (as stated in the record)Failure mode in one line
CVE-2026-117558ai-sdlc MCP Server through 0.31.2repo interpolated into gh and run via execSync
CVE-2026-117559DroidMind through 0.4.0Shell allowlist bypassed with $() / backticks
CVE-2026-117560ATXP Gemini CLI Extension through 1.0.0Unsanitised tool params reach runAtxp()
CVE-2026-117561sf-mcp through 1.3.2escapeValue() misses backticks and $(); values reach execSync
CVE-2026-117567esp-mcp through commit 28afddftarget, port, project_path, project_name reach create_subprocess_shell
CVE-2026-117568mcp-ffmpeg through 1.0.5videoPath / outputDir reach child_process.exec
CVE-2026-117569Kali-GPT through commit a608c74Scanner params run with subprocess.run(..., shell=True)
CVE-2026-117570nmap-mcp through commit 3636afaNSE categories such as exploit / dos past an allowlist
CVE-2026-117573hagent through commit 761eec6Tool args interpolated into shell commands

Eight of the nine name no fix and no fixed version in the public write-up. Only CVE-2026-117558 is listed with a patch reference.

One record, read carefully

CVE-2026-117567 (esp-mcp) is typical of the batch. Attackers can put shell metacharacters into MCP tool parameters. Those values are passed to asyncio.create_subprocess_shell, so the resulting commands run as the MCP server user.

The Agentic Times notes that for esp-mcp, Kali-GPT and hagent, the NVD entries say prompt injection can reach the flaw: hostile text an agent reads can steer a tool call into running commands.

Four records in the nine name the attacker as a prompt-injected agent. CVE-2026-117560 is the most specific: instructions planted in email or SMS can put $() or backticks into parameters such as message_id, subject, or query. CVE-2026-117568 needs no prompt injection; the payload can live in a file or directory name.

Why "AV:L" is the wrong mental model for agents

CVSS marks these as local because the process that issues the shell call is already running as a user on the host. In an agent stack, that "local" caller is often the agent itself, after it read untrusted mail, a web page, a ticket, or a skill file.

The chain is short:

  1. Untrusted text reaches the model context.
  2. The model chooses an MCP tool and fills parameters from that text.
  3. The MCP server interpolates those parameters into a shell.
  4. The shell runs as the MCP server user.

From the host's point of view, nothing remote happened. From the operator's point of view, reading an email just became code execution.

That is why inventory matters more than a single CVSS number. The question is which MCP servers your agents can call, and whether anything can deny a catastrophic tool call before it leaves the host.

What a tool gate can and cannot do

A memory firewall and a host-side tool gate do not patch a vulnerable MCP server, and they do not rewrite third-party tool descriptions at registration. Where a host hook can deny, they can stop catastrophic tool calls before the host runs them. On Claude Code and OpenClaw, risky calls can also get an approval card when the gate is enforcing. Hermes has no approval prompt, so it blocks those calls instead.

ShieldCortex is a local, MIT-licensed memory firewall for agents (npm i -g shieldcortex). Writes through it are scanned. Action Guard (the tool gate) can deny only when bound to the host's hook:

HostMemory firewallTool gate
Claude CodeYesBound via PreToolUse. Off until you turn it on. Only an enforcing posture hard-stops or asks approval; Watch only and Enforce when ready (shadow until readiness evidence exists; none ships) still let ordinary dangerous calls through.
OpenClawYesBound via before_tool_call. Same off / Watch only / Enforce when ready split as Claude Code.
HermesVia local APIBound via pre_tool_call once you run hermes plugins enable shieldcortex and shieldcortex api is up. Then it enforces by default (advisory opt-out: SHIELDCORTEX_ENFORCE=0). No approval prompt.
Cursor / Codex / generic MCPYes if the agent calls ShieldCortex toolsUnbound. Cannot wrap host Bash.

shieldcortex doctor prints that split and will not say protected for a host that cannot deny. For Hermes it only reports whether the plugin copy is present, so confirm the plugin is enabled and the local API is running before you claim a deny path.

So for this CVE batch: only a live enforcing Guard posture on Claude Code or OpenClaw, or an enabled Hermes plugin with the local API up, can hard-block shell-shaped tool calls of this kind. Enabling the gate alone is not enough on Claude Code or OpenClaw if it is still Watch only or Enforce when ready. It does not fix the MCP server. On Cursor it cannot deny host Bash. It also does not cover connect-time bugs that never issue a model tool call.

Practical steps this week

  1. List every MCP server each agent can call. Prefer projects with a fixed release over commit-only boundaries.
  2. Treat email, SMS, web pages, tickets, and skill files as untrusted input into tool parameters, not as safe text.
  3. On Claude Code or OpenClaw, turn Action Guard on and confirm it is enforcing, not Watch only or Enforce when ready in shadow. On Hermes, enable the plugin and keep shieldcortex api up; do not treat a doctor "plugin present" line as a deny. Use shieldcortex doctor plus those runtime checks.
  4. On Cursor or Codex, do not expect a memory scanner to stop shell execution. Keep high-risk MCP servers off those hosts until you have another control.

ShieldCortex is free for local use. Enterprise enquiries go to sales@drakonsystems.com. Product detail: shieldcortex.ai.

See how the wider Drakon Systems portfolio fits together

Explore invoice automation, e-signatures, AI security and implementation services from one product portfolio.

View Products