Field noteNov 11, 20265 min read1 source

Public exploit published for unauthenticated RCE in Ruflo MCP Bridge 3.16.2

In one minute

Ruflo’s GitHub security advisory says its MCP bridge in the default Docker Compose deployment allowed unauthenticated network attackers to execute commands, expose provider keys and tamper with the AgentDB learning store. Versions before 3.16.3 are affected; the advisory says the fix binds to loopback by default and adds authentication and execution controls.

What changed: A newly disclosed Ruflo MCP bridge vulnerability exposes its default Docker Compose deployment to unauthenticated remote code execution; versions before 3.16.3 are affected.

What happened

The advisory, published by Ruflo maintainer ruvnet on GitHub on July 1, 2026, identifies an unauthenticated remote code execution flaw in the MCP bridge shipped in ruflo/docker-compose.yml. It lists npm package versions earlier than 3.16.3 as affected and 3.16.3 as patched. The advisory assigns CVE-2026-59726 and a CVSS 3.1 score of 10.0, with network access, low attack complexity, no required privileges and no user interaction.

The deployment risk came from two defaults used together: the bridge and MongoDB bound to all interfaces, while the bridge’s POST /mcp endpoint had no authentication. An attacker able to reach the service could call tools/call and invoke terminal_execute inside the bridge container. The advisory says this could provide a shell as node (UID 1000), expose every provider API key in the container environment, launch attacker-controlled swarms using the victim’s keys, and write a poisoned pattern to the AgentDB learning store. That pattern could steer future AI outputs for users of the instance.

The advisory says a tool blocklist mentioning terminal_execute applied only in the autopilot flow. Requests to POST /mcp and POST /mcp/:group bypassed that restriction. The maintainer describes the fix as ADR-166 Phase 1–3, associated with branch security/adr-166-mcp-bridge-rce and PR #2521. Changes include binding to loopback by default; requiring MCP_AUTH_TOKEN bearer authentication when opting into a public bind; a server-side execution gate that makes terminal use require MCP_ENABLE_TERMINAL=true; and enabling MongoDB authentication by default, with MONGO_INITDB_ROOT_PASSWORD required at startup.

Other listed changes include a read-only container with tmpfs, CORS allowlist wiring, and static and runtime CI regression checks covering Compose defaults. For operators of an exposed instance, the advisory says to firewall ports 3001 and 27017 immediately, rotate OpenAI, Google, OpenRouter and Anthropic keys, audit the AgentDB pattern store and remove injected agentdb_pattern-store entries, and check MongoDB for tampering. It explicitly warns that redeploying a patched version alone does not undo poisoned patterns.

What the archive adds

New Runtime’s earlier coverage found an unauthenticated RCE in Langflow OSS through MCP tool enumeration, fixed in 1.13.0 (October 31, 2026 note). Ruflo is a distinct incident and product, not a restatement: this advisory adds a separate example of an exposed MCP interface permitting command execution and post-exploitation tampering.

Trend signal

This incident supports the view that an agent’s durable security boundary is its runtime and permissions, not prompt-level restrictions. The advisory says the terminal_execute blocklist covered only one flow while MCP routes bypassed it; the fix adds a server-side execution gate and deployment-level controls. That is a concrete fit with agent security moving to runtime boundaries.

Why now

The maintainer’s advisory identifies 3.16.3 as the patched version and gives direct containment steps for exposed deployments. Operators should treat both remediation and checking for persistence as necessary, because the advisory says a patched redeploy does not remove poisoned AgentDB patterns.

Connections to other events

New Runtime’s earlier coverage of the MoLing MCP server described a separate flaw in which SSE mode let a web page hijack sessions and call tools; that issue was fixed in 0.5.0 (October 31, 2026 note). Together with the Langflow case, these incidents show distinct ways MCP-facing software can expose consequential capabilities when authentication or execution boundaries fail.

Why it matters

The impact described here extends beyond an attacker running a command in one container. Provider credentials can enable unauthorized use of paid APIs, while a writable learning store creates a persistence path that may affect later agent behavior even after the vulnerable deployment is replaced. That makes incident response a data-integrity task as well as a patching task: rotate secrets, inspect the store and database, and verify the deployed network bindings and authentication settings.

For teams running agent infrastructure, the advisory also illustrates why a restriction in one orchestration path is not an authorization boundary. Every route that can reach a powerful tool needs server-side enforcement, and network exposure should be explicit rather than inherited from a permissive default. These are operational checks for self-hosted Ruflo users, not evidence that every MCP deployment or Ruflo installation was exploitable.

Limits and uncertainty

The advisory is the maintainer’s account of the flaw, affected configuration and fix; the described exploitation consequences are not independently verified here. It does not state how many deployments were exposed or whether attackers exploited the issue in the wild. The advisory gives version bounds and remediation but does not quantify the number of affected users or document a broader impact assessment. Operators still need to determine whether their own instance was reachable and whether credentials, MongoDB data or AgentDB patterns were altered.

Reader takeaway

If you run Ruflo, upgrade to 3.16.3 or later and do not stop at redeployment if the instance was exposed: firewall the listed ports, rotate provider keys, and inspect AgentDB and MongoDB. The advisory’s central lesson is that tool restrictions must be enforced at the server boundary on every path that can invoke them.

Evidence / sources

  1. 1github.com/ruvnet/ruflo/security/advisories/GHSA-c4hm-4h84-2cf3
All Field Notes

Next reads

Read next

Open the graph
  1. 01topicMcpExplore the mcp topic hub.
  2. 02topicGithubExplore the github topic hub.
  3. 03archiveField NotesOpen the latest editorial analysis.
  4. 04sourcesSourcesSee the original sources this archive cites.
Who read this page?Machine requests, hidden until opened

Loading the privacy-safe route aggregate...

Open the JSON contract