Noma Labs ยท July 29, 2026

RufRoot: unauthenticated Ruflo MCP bridge enabled RCE and memory poisoning

Why it matters

Before Ruflo 3.16.3, its default Docker Compose deployment bound the MCP bridge to all interfaces without authentication. A reachable attacker could invoke the terminal tool, read model-provider keys and conversations, spawn agents, and poison persistent AgentDB patterns. Noma Labs verified the chain; the patch adds loopback binding, bearer authentication for public exposure, an opt-in terminal tool, authenticated MongoDB, tighter CORS and container defaults, and regression tests.

My takeaway: Upgrade to Ruflo 3.16.3 or later and treat exposed instances as compromised: close ports 3001 and 27017, rotate provider secrets, inspect AgentDB and MongoDB, and rebuild from trusted images. For every MCP server, require authentication and per-tool authorization, keep dangerous tools off by default, restrict network reachability, audit memory writes, and regression-test secure deployment defaults.