
RufRoot:只需向 Ruflo 的 MCP 桥接器发起一个未认证请求,即可执行命令、窃取密钥并污染 AI 记忆
- Orca新OrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29101 tok/s
- Orca新OrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 每百万 tokens · 103 tok/s
- Orca新OrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 每百万 tokens · 283 tok/s
- Orca新OrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 每百万 tokens · 93 tok/s
- Moonshot新MoonshotAI: Kimi K3.1 Pro2026-10-2446智能
- Orca新OrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 每百万 tokens · 107 tok/s
- minimax新MiniMax: M3.1 Flash2026-10-1929智能
- Orca新Orca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 每百万 tokens · 70 tok/s
- deepseek新DeepSeek: DeepSeek V4.1 Flash 10172026-10-1733智能
- DeepSeek新DeepSeek: DeepSeek V4.1 Flash2026-10-1740智能
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 每百万 tokens · 96 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955智能
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854智能
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 每百万 tokens · 168 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228智能
- OpenAIOpenAI: GPT-6 Sol2026-09-2248智能
- AnthropicAnthropic: Claude Opus 5.52026-09-2258智能
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127智能
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130智能
- xAIGrok 4.72026-09-2134智能
在2026年6月30日,Noma Labs向Ruflo的维护者移交了一个针对该项目本身的可用漏洞利用程序。Noma Security 的研究部门发现,Ruflo——一个曾以 Claude Flow 名称发布的开源智能体编排平台——所交付的默认 Docker Compose 部署将其模型上下文协议桥接绑定到端口 3001,并在每个网络接口上监听,且完全不要求任何身份验证。只需向 /mcp 端点发送一个 HTTP 请求,就足以在容器内以 node 用户身份运行 shell 命令;而通过该 shell,攻击者可以读取环境中的每一个 LLM 提供商 API 密钥、导出所有已存储的对话、启动按受害者密钥计费的智能体集群,并向 AgentDB 学习存储中写入指令,这些指令会持续影响该实例每位用户得到的 AI 回答。该漏洞编号为 CVE-2026-59726,绰号RufRoot,评分为 CVSS 10.0,并在 3.16.3 中于 24 小时内修复。我们查阅的任何来源均未报告该漏洞已在野利用。该档案自身关于此漏洞的记录——包括其来源列表和置信度评级——位于 AI 事件档案中,与归档在它周围的其他 MCP 和基础设施条目并列。
打开大门的默认设置
Ruflo 是 Noma Labs 所称的智能体元框架:一个面向最多 100 个智能体集群的自托管层,专为 Claude Code 和 OpenAI Codex 构建,具备长期记忆以及用于工具调用的内置 MCP 服务器。通常的部署方式是 Noma 所描述的那种——克隆仓库、添加 LLM API 密钥、运行 docker compose up -d。该项目的默认 compose 文件将网桥绑定到 0.0.0.0 的 3001 端口,并将其配套的 MongoDB 绑定到所有接口的 27017端口,且关闭了 Mongo 认证。这种暴露的影响范围取决于部署周围的防火墙、安全组和网络隔离;Noma 自己的表述是,任何网络可达的实例都能在无认证的情况下被完全利用。
MCP Bridge 是一个 Express.js 服务器,它会把通过 HTTP 到达的 JSON-RPC 请求转换为对 Ruflo 内部工具库的调用。在这行存在漏洞的代码中,该工具库包含 233 个工具,涵盖 shell 访问、数据库操作、智能体管理和记忆存储。Noma 的文章直言不讳地指出了这意味着什么:“MCP Bridge 并非随意的辅助调试接口;相反,它是 Ruflo 的中枢神经系统。每一次工具调用、每一个智能体操作、每一次记忆操作都要经过 MCP Bridge。”
认证层是缺失的,而不仅仅是薄弱。 POST /mcp 以及 POST /mcp/:group 实现了 MCP JSON-RPC 协议,并将传入的 tools/call 请求直接传递给内部的 executeTool() 函数。Ruflo 确实维护了一个命令阻止列表 AUTOPILOT_BLOCKED_PATTERNS,旨在阻止危险的 shell 操作,但 GitHub 安全公告明确指出,它“仅在 autopilot 流程中强制执行。POST /mcp 和 POST /mcp/:group 绕过了它。”因此,一次未认证的调用通过指定 ruflo__terminal_execute,以容器的 node 用户身份运行了任意命令,公告中将其记录为 uid 1000,且不需要令牌、会话或任何先前交互。接下来的操作无需提权:凭据、智能体 API、记忆存储和数据库都可以从那个 shell 访问。
这一链条,共分八个步骤
Noma Labs 发布了一个包含八个步骤的概念验证,并在 AWS EC2 上的默认 Ruflo 部署环境中对每一步进行了实时验证,通过带外回调至 Burp Collaborator 来确认执行与数据外泄情况。这些步骤并非堆叠在一个理论漏洞之上的推测性后果,而是一个已被实证的序列;该安全公告的修复章节正是为那些可能已身处其中的运维人员编写的。

侦察之所以排在最前,是因为工具列表对任何调用者都是公开的:tools/list 无需凭证即可返回全部 233 个条目。命令执行同样源自该端点,Noma 的验证概念通过带外回调确认了这一点,而不是从响应体推断。环境这一步则是把主机失陷转化为计费与数据丢失问题的关键:compose 文件将提供方密钥传入容器,而后端进程通过 { ...process.env } 继承了完整环境,因此一条 printenv 就把它们全部倒了出来。随后这些密钥使 ruflo__swarm_init 和 ruflo__agent_spawn 得以启动由攻击者控制的 swarm,从而消耗受害者的配额与算力。
第五步是比入侵存续得更久的那一步。利用 ruflo__agentdb_pattern-store,Noma 植入了一项伪造的 SOC2 合规政策,该政策指示 AI 在其随后生成的每个部署脚本中嵌入一个由攻击者控制的 URL。由于 AgentDB 的存在正是为了持久保存这类模式,使智能体行为能跨会话改善,这条注入条目便按照系统被设计的方式表现。Noma 的报告中写道:“未来的对话会产生受攻击者影响的输出,而用户无从分辨。”7 月 29 日报道该漏洞的 Dark Reading 把这一区别交给了一位外部专家:Viakoo 副总裁 John Gallagher 称其为另一类问题:“这不是在利用软件缺陷,而是在进行记忆投毒。”
其余步骤都是常规的后期利用,执行起来却异常便利。内部 Docker 网络上的 MongoDB 没有身份验证,因此攻击者在 /tmp 中安装了客户端,导出会话并将其外传。持久化则来自写入 /app/beacon.js,添加一行 require('./beacon.js') 到 index.js,并终止 PID 1;之后 Docker 的重启策略让容器重新启动,且 beacon 处于活动状态。最后一步是清除 shell 历史记录。所有这些都源自一个未经身份验证的请求;默认部署中没有任何环节在任何时候阻止这条攻击链。
修复方案,以及补丁无法触及的部分
维护者发布了Ruflo 3.16.3,发布时间为6月30日披露后的24小时内,同时 GitHub 发布了公告GHSA-c4hm-4h84-2cf3于2026年7月1日。该修复在仓库中以 ADR-166 跟踪,并已在拉取请求 2521 中合并,它更改的是默认值,而不只是添加一项检查:
• MCP 桥接器绑定到 127.0.0.1 是默认设置;公开绑定需要 MCP_AUTH_TOKEN,如果缺少该令牌,进程会在启动时以致命错误消息退出。
• 带有恒定时间比较的 Bearer 令牌中间件位于桥接层之前。
• terminal_execute 在服务端由 MCP_ENABLE_TERMINAL=true 控制,默认关闭,并且该门控在 /mcp、/mcp/:group 以及 autopilot 流程上以相同方式强制执行——这正是缺失的一环,曾让已披露的链路得以触达 shell。
• MongoDB 需要身份验证,容器启动必须设置 root 密码。
• 桥接容器以只读根文件系统配合 tmpfs 运行,CORS 允许列表取代了通配符,CI 回归锁定同时覆盖静态配置与运行时行为。
这些都无法删除已经写入 AgentDB 的条目。该公告告诉任何暴露实例的运营者立即用防火墙封锁 3001 和 27017 端口、轮换提供商密钥、审计模式存储中是否有被注入的 agentdb_pattern-store条目并清除它们,审计 MongoDB 是否遭到篡改,并用干净的镜像重建容器。其警告异常直接:“仅重新部署已修补版本本身并不能消除投毒影响。”Noma 的文章得出了同样的结论——审计模式存储是补救措施的一部分,而补丁不是。
原因在于结构,而非疏忽。一个会塑造未来模型输出的模式存储,无法区分合法习得的指令与攻击者植入的指令;两者都以模式的形式到来,而系统本就设计为信任它们。这使网络漏洞变成了一个带有未知积压的数据完整性问题,也意味着对运营者而言,问题不仅在于端口是否可达,还在于记忆现在存有什么。

什么是已确立的,什么不是
这里的技术记录是首要且一致的。公告列出了受影响的包(npm ruflo低于 3.16.3)、修复版本、确切端点、容器用户和两个端口;维护者的发布说明描述了同一条链条;Noma 的撰文提供了概念验证细节;独立媒体——2026年7月29日的 The Hacker News 和 Dark Reading、7月30日的 SecurityWeek——报道了相同机制,且未添加相互矛盾的具体信息。Cloud Security Alliance 2026年8月5日的一份研究简报重述了该序列,并将其与它此前追踪的早期未认证 MCP 和智能体编排缺陷并列。档案将该记录的置信度评为 A,无争议,并将其标记为里程碑;该记录的严重性评级为高,与 CVSS 分数本身不同。
有一个评分细节值得精确说明,因为两份原始文档存在分歧。GHSA-c4hm-4h84-2cf3 在向量 CVSS 10.0 上给出 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H——正是作用域变更(S:C)把它推到了最高分。同一份公告在 3.16.3 发布页上的副本将该评分描述为“CVSS 9.8 critical”。美国国家漏洞数据库(NVD)的记录(查阅于 2026 年 10 月 30 日,发布于 2026 年 7 月 9 日,标记为 Deferred)将 GitHub 的 10.0 作为次要指标收录,且没有 NVD 自身给出的评分。我们没有找到对 9.8 这一说法的解释,本文也不对此作出结论。
采用数据则较为单薄。Noma Labs 当时称该项目拥有超过 67,000 个 GitHub star、约 1,000 万次下载和约 100 万活跃用户;正如云安全联盟(Cloud Security Alliance)所总结的那样,The Hacker News 引用了超过 66,500 个 star。下载量和用户数均为 Noma 自行提供,未经独立核实。该仓库在 2026 年 10 月 30 日的 star 数为 80,198——这是对项目影响力的核查,而非对暴露面的衡量,且没有任何来源公布过究竟有多少部署实际上可从网络触达。

尚未确认的部分,正是最容易被夸大的部分。无论是 Noma、维护者,还是我们读过的任何媒体,都没有声称该漏洞已被在野利用,档案中也没有记录该条目造成任何实际危害。Noma 的概念验证是在研究人员于 EC2 上控制的部署环境中运行的,这只能说明默认安装允许什么,而不能说明任何特定的生产实例遭受了什么损失。目前尚未公布任何关于面向互联网的 Ruflo 部署数量的统计,也没有任何运营者公布 AgentDB 审计的结果,因此受影响的范围以及现存的被污染记忆的数量都不得而知。云安全联盟建议将暴露的部署视为完全失陷,这是一种以零交互利用为依据的风险姿态;它并不是已经发生入侵的证据。
为什么档案馆将其标记为里程碑
这份档案的里程碑式标记,依托于比最高分更具体的东西。热门自托管服务中出现 CVSS 10.0 的远程代码执行漏洞,是一种熟悉的类型,而这里的修复在 24 小时内就到位了。RufRoot 的不同之处在于,该漏洞利用终止于 AI 自身的学习流水线;在那里,常规补救措施——升级、重新部署、关闭端口——会让注入的指令留在原处,并继续塑造回答。Cloud Security Alliance 的说明将其解读为一种模式中的案例研究,该模式已在各类智能体工具中有所记录,包括 LangGraph 检查点链和未认证的 AutoGen Studio 暴露面,并主张,用于塑造智能体行为的持久记忆应被视为受完整性监控的敏感数据存储,而不是缓存。
这种重新框定才是实用的要点。这次事件可见的产物是一个已打补丁的依赖项和一份已发布的公告;不可见的产物则是运营方的 AgentDB 中可能仍然存在的某种模式,而且没有任何已发布的工具或签名能够区分合法学习到的策略和被植入的策略。对于那些在可达网络中运行默认 compose 文件的组织来说,有用的应对方式正是 Noma 和该公告都给出的建议:假设密钥已被读取,轮换它们,并在信任其产出的答案之前检查记忆。
