CVE-2026-54140: OpenHuman MCP Tool Description Injection Allows Silent Agent Hijacking

A high-severity vulnerability in OpenHuman versions before 0.57.13 allows malicious MCP servers to inject arbitrary LLM instructions through unsanitized tool descriptions, bypassing prompt injection defenses and executing silently on every agent turn.

Christopher Ort
By Christopher Ort · 3 min read
Share
A security researcher examining code on a laptop screen in a dimly lit office, with network diagrams visible on a whiteboard in the background

CRITICAL: Malicious MCP Servers Can Hijack OpenHuman Agents via Tool Descriptions

A high-severity vulnerability tracked as **CVE-2026-54140** has been disclosed in OpenHuman, an open-source agent harness available as a desktop application and Rust library. The flaw allows malicious or compromised Model Context Protocol (MCP) servers to inject arbitrary instructions into the agent’s large language model (LLM) context through unsanitized tool descriptions, enabling silent data exfiltration and unauthorized actions.

Vulnerability Details

OpenHuman connects to external MCP servers and incorporates their tool definitions—including names, descriptions, titles, and parameter schemas—directly into the agent LLM context. According to the GitHub security advisory GHSA-g6j9-89xv-v752, versions before 0.57.13 placed this remote content into the `McpRemoteTool` struct without any neutralization, escaping, or validation.

The vulnerability exists because:

  • Tool `description` and `title` fields from remote MCP servers are passed verbatim to the agent’s tool-use context
  • The existing prompt injection detector in `src/openhuman/prompt_injection/detector.rs` only screens user-supplied messages, never tool definitions
  • Tool filtering logic in `filter_allowed_tools()` operates solely on tool names, not content
  • No length bounds are enforced on description fields

As stated in the advisory, “A malicious or compromised MCP server can embed arbitrary LLM instructions in a tool description that execute silently on every agent turn, bypassing the prompt injection detector entirely because the detector only scans user input—not tool definitions.”

Attack Scenario

The advisory provides a concrete proof-of-concept showing how an attacker controlling or compromising an MCP server can embed instructions in a tool description. The malicious description could direct the LLM to:

  • Silently invoke other available tools (such as email or file access functions)
  • Exfiltrate credentials from `~/.aws/credentials`, `~/.ssh/id_rsa`, or environment files
  • Perform unauthorized actions without user awareness
  • Execute on every agent turn for the session lifetime

The attack payload lives in the `description` field, which enters the LLM with “system-prompt-level trust” according to the advisory. Users see normal responses while data exfiltration occurs in the background.

Affected Versions and Scope

All OpenHuman versions before 0.57.13 are affected. The vulnerability impacts any user who has configured at least one MCP server, including popular community servers from registries such as Smithery or mcp.run. The advisory notes that a single compromised popular community MCP server simultaneously affects all OpenHuman users who installed it.

Patch and Mitigation

Version 0.57.13, released on June 3, 2026, addresses the vulnerability through pull request #3215. The fix implements multiple defensive layers:

  • **Sanitization pipeline**: New module `mcp_client/sanitize.rs` strips ASCII control characters and known LLM instruction-fence markers (such as `|im_start|`, `### Instructions:`, `SYS`)
  • **Length caps**: Tool descriptions are limited to 1024 bytes with UTF-8-safe truncation
  • **Prompt injection scanning**: Tool definitions are now scanned through the existing detector at registration time
  • **Tool rejection**: Any tool whose description or title matches a high-confidence injection rule is refused registration
  • **Audit events**: A new `DomainEvent::McpToolRejected` event logs rejected tools with server name, tool name, and pattern reason (without echoing the malicious payload)

The patch introduces `display_description()` and `display_title()` accessor methods on `McpRemoteTool` that route raw fields through the sanitization pipeline. According to commit 00b8a66, LLM-context call sites MUST read through the display accessors—enforced by code review + doc-comment contract on the type.

Both static configuration (`[[mcp_client.servers]]`) and dynamic Smithery installs are covered by the new filtering logic in `mcp_client/registry.rs::apply_safety_filter`.

CVSS Score and Classification

The vulnerability has been assigned a CVSS v3.1 score of **8.3 (High)** with vector string `CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H`. The advisory notes the attack requires network access, high complexity, no privileges, user interaction (installing the malicious server), and results in scope change with high impact to confidentiality, integrity, and availability.

The flaw is classified under CWE-1427 (Improper Neutralization of Input Used for LLM Prompting).

Recommendations

Users of OpenHuman should immediately upgrade to version 0.57.13 or later. The release notes confirm that existing installed servers are re-probed on next connect, and any tool whose description trips the new scan is dropped from the agent surface and reported via the audit event.

The advisory states there is no migration burden: Legitimate descriptions register unchanged. Oversized descriptions (>1024 bytes) truncated with a marker and the tool still registers.

Organizations using OpenHuman should review their configured MCP servers and monitor `McpToolRejected` events for signs of attempted exploitation.

Sources

Christopher Ort

Christopher Ort

Christopher Ort handles SEO, AI agent workflows and PR & partnerships at i10x.ai, the all-in-one AI workspace built by i10X Global Pte. Ltd. in Singapore. He is a graduate of Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU). He is the author of “The Style Penalty”, a study published on SSRN that analyses 1,576 evaluation decisions by four frontier AI models to show how AI-written CVs fare in automated hiring screens; the research has been covered by heise online and t3n.

Editor's picks

  1. CVE-2026-77604: Path Traversal Vulnerability in Code Graph RAG MCP Server Allows Arbitrary File Read
  2. CVE-2026-123271: ChatCLI OAuth Flaw Allows Token Theft via Malicious MCP Servers
  3. CVE-2026-123022: AgentScope MCP Workspace Allows Unauthenticated Remote Code Execution
  4. CVE-2026-97677: Path Traversal Flaw in IBM Langflow OSS 1.0.0–1.12.2 Allows File Read/Write
  5. Active Support DoS Flaw Lets Unauthenticated Attackers Crash Rails Servers via Action Cable