RouterOSSSH公钥认证绕过漏洞CVE-2026-67276
一次典型的"匹配与验签信任错位"——比对凭据时漏掉一个字段,验签时又信任了攻击者提供的输入。两个疏漏叠加,让攻击者在只掌握公钥的情况下冒充任意用户登录路由器。
漏洞描述
RouterOS SSH 公钥认证绕过漏洞(CVE-2026-67276)源于其 SSH 实现中对 RSA 公钥的校验缺陷。系统在验证公钥时,仅比对密钥类型和模数,完全忽略指数部分,且在签名验证时直接使用客户端提供的公钥参数。攻击者可利用此缺陷,伪造指数为 1 的恶意公钥,使签名验证退化为恒等运算,从而在仅持有受害者 RSA 公钥模数的情况下,无需私钥即可完全绕过 SSH 身份验证,获得设备完整控制权限。
影响范围
RouterOS 7.24 < 7.24.2
RouterOS 7.0.0 < 7.23.4
RouterOS 6.0.0 < 6.49.21
漏洞详情
漏洞详情漏洞编号CVE-2026-67276漏洞名称RouterOS SSH 公钥认证绕过漏洞威胁类型身份认证绕过 | 利用情况 | 更可能被利用 危害描述:攻击者仅需目标用户公钥的模数,即可伪造公钥绕过SSH认证,无需私钥直接获取RouterOS设备的完整控制权。
漏洞复现
复现RouterOS SSH 公钥认证绕过漏洞,验证如下。

MikroTrick:从免私钥登录到完全接管
CERT Polska 将 CVE-2026-67276 与 CVE-2026-86060 的组合命名为 MikroTrick。前者负责进门,后者负责提权。
① 认证绕过CVE-2026-67276 · 9.2以目标账户身份登录
② 权限提升CVE-2026-86060 · 9.2用户名 -2 注入策略掩码
③ 持久化创建 full 权限账户植入 ops 等高权用户
已观测到的在野利用痕迹(CERT Polska IoC)login failure for user -2 from <ip> via sshuser <name> added by ssh:-2@<ip>攻击源 82.192.72.4(成功,9/2 起)· 103.102.31.18(尝试)· 高权账户 ops
第一步:认证绕过
攻击者收集目标用户名与其授权公钥的模数,构造 e = 1 的孪生公钥与自算签名,以目标用户身份打开 SSH 命令通道。此阶段获得的权限等同于被冒充账户——若目标账户本身是只读账户,此时还不足以完全接管设备。
第二步:策略掩码注入(CVE-2026-86060)
这一步是整条链中最具工程意味的部分。补丁逆向显示,RouterOS 的 sshd 在认证完成后,会通过 argv 把认证结果移交给 login 辅助进程。7.23.3 中的简化调用如下:
execl("/nova/bin/login", "login",
"-ssh", "-trace", trace,
"-h"/"-mac", peer,
"-c", command,
authenticated_name, decimal_policy_mask, NULL);问题在于 login 对以 - 开头的位置参数保留了一条遗留的文件描述符传输通道:
if positional[0] == '-':
fd = atoi(positional + 1)
blob = read_until_eof(fd, maximum = 4096)
require blob[-1] == 0
field1 = blob before first NUL # 替换登录名
field2 = blob after first NUL # 经 strtoul 成为策略掩码当攻击者使用用户名 -2 时,login 会改从 fd 2(即会话 PTY)读取登录材料。攻击者在 PTY 中发送:
0x00 654958 0x00 0x04 0x04
# 字段 1 = 登录名(首个 NUL 之前,为空)
# 字段 2 = 654958(0x9FE6E),经 strtoul 成为策略掩码
# 0x04 0x04 = 两个 VEOF,结束读取654958(即 0x9FE6E)正是 RouterOS 的完整策略集。一个原本只读的会话,就此获得 full 管理权限,可以执行任意配置变更。
补丁逆向作者明确声明,未能在纯本地认证环境中复现"SSH 接受字面
-2用户名"的原生路径——实验室环境中该用户名由 RADIUS 应答器提供。野外目标可能启用了 RADIUS 或 User Manager 之类的外部认证,也可能存在尚未公开的初始访问原语。区分"已复现"与"已推断",是阅读安全报告的基本功;此处属于后者。
第三步:持久化
取得 full 权限后,攻击者随即创建 full 权限账户。实验室复现产生的日志与野外受害设备的痕迹完全同构:
# 实验室复现日志
user ops added by ssh:-2@172.31.88.5
user ops removed by ssh:-2@172.31.88.5 /action:0
# 野外受害设备痕迹(CERT Polska IoC)
login failure for user -2 from <ip> via ssh
user <name> added by ssh:-2@<ip>