能够访问集群化 Cisco Expressway 的 Erlang 分布式端口(TCP/4372)的未认证远程攻击者,可以利用厂商定义的维护身份及其关联的持久 cookie,以 root 身份执行任意操作系统命令——这两个值都硬编码在产品的集群管理器模块(cm_server)中。
| 字段 | 值 |
|---|---|
| CVE | CVE-2026-76466 |
| CVSS | 9.8 严重 |
| CWE | CWE-798(使用硬编码凭据) |
| 发布日期 | 2026-10-21 |
| 修复版本 | X15.5.20 |
| 缓解措施 | 无(依据 Cisco 安全公告) |
Cisco Expressway 使用 Erlang/OTP 实现其集群数据库服务。当两个或更多 Expressway 节点配置为集群时,每个节点都会在 TCP 端口 4372 上运行一个受 TLS 保护的 Erlang 分布式监听器。Erlang 分布式会话通过共享的“cookie”进行认证——如果攻击者知道该 cookie 并能访问该端口,就可以加入分布式网格,并在远程节点上调用任意函数,而远程节点以 root 身份运行。
Expressway 的集群管理器模块(cm_server)包含一个函数,会将一个硬编码的维护节点身份与已配置的集群对等节点一起加入允许节点集合。该身份使用旧版 TANDBERG 前缀 wombat@。同时还会安装一个匹配的硬编码 cookie。由于这两个值都被编译进 Erlang 模块,因此在受影响版本的每次安装中它们都完全相同。
在 TLS **宽松(Permissive)**模式(出厂默认)下,服务器不验证客户端证书,因此任何知道维护身份和 cookie 的网络客户端都可以完成分布式握手并执行 RPC 调用。
TLS 1.3 connect to target:4372
→ Erlang dist handshake with node name "[email protected]"
→ cm_server admits the identity (add_allowed_wombat_node)
→ challenge-response with cookie "wombat"
→ distribution session established (ping = pong)
→ rpc:call(Target, os, cmd, ["id -u"]) → 0
依据 Cisco 安全公告:
使用随附的 exploit/cve_2026_76466.py --mode ping 检查目标是否接受该维护身份。此操作仅执行认证(不执行命令)。
对于大规模排查:
--mode ping 检查Cisco 声明没有缓解措施。升级即为修复:
在升级完成之前,将 TCP/4371–4372 限制为仅允许授权的集群对等节点访问,并对来自非对等地址的连接发出告警。
运行时验证在以下环境进行:
id -u 返回 0(root)未测试:
本工具仅用于授权的安全测试。维护者不对滥用行为负责。在测试任何非自有系统之前,请务必获得书面许可。