CVE-2026-67276|RouterOSSSH公钥认证绕过漏洞(POC)

admin 2026-09-15 04:47:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析CVE-2026-67276RouterOSSSH公钥认证绕过漏洞,攻击者可免私钥冒充任意RSA密钥用户。漏洞源于密钥比对仅检查类型与模数n,验签信任客户端公钥,e=1构造孪生公钥即可绕过认证。影响7.x版本,修复版本为7.23.4与7.24.2。与提权漏洞组合成MikroTrick攻击链可完全接管设备,已在野利用。建议立即升级、排查日志中-2用户及陌生账户,限制SSH暴露面。 综合评分: 88 文章分类: 漏洞分析,应急响应,漏洞预警,渗透测试,红队


CVE-2026-67276 | RouterOS SSH公钥认证绕过漏洞(POC)

alicy alicy

信安百科

2026年9月14日 09:00 河北

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

免责声明:本文为公开安全资讯的技术整合与原创分析,仅供安全研究、防御加固与学习交流使用。漏洞技术细节均来源于公开可查证的安全研究资料,请勿将文中信息用于任何非授权用途。

#

0x00、前言

MikroTik 是拉脱维亚网络设备厂商,旗下 RouterOS 以功能密集、性价比高著称,从家用路由器一路覆盖到运营商级设备,在全球 ISP 与企业网络中存量巨大。据 Shadowserver 基金会统计,截至 9 月 5 日,仅 SSH 服务暴露在公网的 MikroTik 设备就超过 12.2 万台。

9 月 5 日,波兰 CERT 公开披露 RouterOS 的六个漏洞。其中 CVE-2026-67276 是一个 SSH 公钥认证绕过漏洞:攻击者不需要私钥,就能冒充任意配置了 RSA 密钥登录的用户。MikroTik 为此做了件史上头一回的事——向手机 App 用户推送升级提醒。它已经不只是漏洞,而是正在发生的攻击的一部分。

0x01、漏洞描述

CVE-2026-67276 属于密码学签名验证不当类缺陷(CWE-347),CNA 给出的 CVSS 4.0 评分为 9.2(Critical)。

问题出在 SSH 公钥认证的密钥比对环节:RouterOS 将客户端提交的公钥与用户授权密钥匹配时,只比较了密钥类型与模数 n,漏掉了指数 e;而签名验证又直接采用客户端提交的公钥。攻击者只要拿到目标用户名和该用户授权公钥的模数,就能构造一把 e=1 的“孪生公钥”,自行算出必然通过验证的签名,以目标用户身份打开 SSH 命令通道,权限等同于目标账户。

利用条件:设备 SSH 可达、目标账户启用 RSA 公钥认证。

限制因素:需先获得公钥模数——而公钥,本来就是设计为可公开传播的材料

0x02、CVE 编号

编号信息取自 cve.org 官方 CVE 记录:CVE-2026-67276

| 项目 | 内容 | | — | — | | CVE 编号 | CVE-2026-67276 | | 漏洞标题 | SSH user impersonation possible in Mikrotik RouterOS | | 漏洞类型 | CWE-347 密码学签名验证不当(Improper Verification of Cryptographic Signature) |

#

0x03、影响版本

官方 CVE 记录写得明确:此问题仅影响 7.x 分支,修复版本为 7.23.4(Long-term)与 7.24.2(Stable)。

| 更新通道 | 受影响版本 | 修复版本 | | — | — | — | | Stable 稳定版 | 7.24 至 7.24.2 之前 | 7.24.2 | | Long-term 长期版 | 7.9 至 7.23.4 之前 | 7.23.4 | | Beta 测试通道 | 早于 7.25beta3 | 7.25beta3 | | v6 老版本 | 官方记录称此漏洞不影响 6.x | 6.49.21(修复同批其余漏洞) |

#

0x04、漏洞详情

CERT PL 为防攻击自动化,刻意保留了部分利用细节。但补丁差异、官方漏洞描述与社区逆向,已经把图景拼得足够完整。以下内容整理自 CERT PL 官方通告、npratley.net 的补丁逆向分析与独立实验室复现,并标注了“已复现”与“已推断”的边界。

1. 缺陷本质:匹配与验签的信任错位

SSH 公钥认证(RFC 4252)里,服务器要做两件事:把客户端提交的公钥与该用户的授权密钥比对;再用这把公钥验证客户端对会话数据的签名。RouterOS 7.x 的实际行为,用公开分析给出的行为模型描述,就两行:

match  = (key_type, modulus)     # 密钥比对:只比类型与模数 n
verify = client-supplied key     # 签名验证:用客户端提交的公钥

(代码较长,可左右滑动查看完整内容)

毛病就出在这两行的组合上:比对阶段放过了指数不同的密钥,验签阶段又信任客户端给的指数。攻击者据此提交一把 {ssh-rsa, e=1, n=目标模数} 的“孪生公钥”:

RSA 验签: s^e mod n == EMSA-PKCS1-v1_5(H(session_id, authdata))
当 e = 1: s^1 mod n == s        # 任意 s 均满足
          => 有效签名 = EMSA-PKCS1-v1_5(...)  # 仅凭公钥即可算出

(代码较长,可左右滑动查看完整内容)

e=1 让验签的数学约束彻底失效。“有效签名”退化成任何知道公钥的人都能计算的编码块——签名的本质是“只有持私钥者才能构造的值”,而 e=1 把这道门槛直接拆掉了。独立复现还补了一个佐证细节:e=1 的 mpint 编码取 1 字节或 3 字节宽度,7.23.3 都放行,说明服务端解析了指数、只是不比较它的值。

| 目标版本 | 真实私钥(对照组) | e=1 伪造密钥 | | — | — | — | | 7.23.3 | 认证成功 | 认证成功 + 命令执行,漏洞确认 | | 7.23.4(已修复) | 认证成功 | 拒绝 | | 6.49.20 | 认证成功 | 拒绝,6.x 匹配行为不同 |

2. 攻击链 MikroTrick:从免私钥登录到完全接管

CERT PL 把 CVE-2026-67276 和提权漏洞 CVE-2026-86060 的组合命名为 MikroTrick——两者相加,SSH 暴露的设备可被无认证完全接管。

第一步:认证绕过。攻击者收集目标用户名与授权公钥模数。泄露的 .pub 文件、配置备份、代码仓库、员工公开的账户公钥,都是现成来源。然后构造 e=1 公钥与自算签名,以目标用户身份登录。

第二步:策略掩码注入。补丁逆向显示,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)读取登录材料,第二个字段经 strtoul 直接成为授权策略掩码。攻击者在 PTY 里发送:

# 会话建立后,攻击者向 PTY 发送:
0\x00 654958\x00 \x04\x04
# 字段1=登录名  字段2=策略掩码 654958(0x9fe6e,full)  \x04\x04=两个VEOF

(代码较长,可左右滑动查看完整内容)

654958(0x9fe6e)正是 RouterOS 的完整策略集。一个只读会话,就此拿到 full 管理权限,任意配置变更都能执行。

第三步:持久化。攻击者随即创建 full 权限账户。实验室复现产生的日志,与野外受害设备的痕迹完全同构:

# 实验室复现日志
user ops added by ssh:[email protected]
user ops removed by ssh:[email protected]/action:0
# 野外受害设备痕迹(CERT PL IoC)
login failure for user -2 from <ip> via ssh
user <name> added by ssh:-2@<ip>

(代码较长,可左右滑动查看完整内容)

在野状态:据 CERT PL 通报,针对公网暴露设备的攻击至少从 9 月 2 日起持续,成功入侵源自 82.192.72.4103.102.31.18 也被观测到利用尝试,高权限 ops 账户的出现是另一条硬指标。另外值得一提:这批漏洞由 CERT PL 研究员借助 GPT-5.5-cyber 与 GPT-5.6-sol 两款大模型,通过协议状态机建模分析发现——AI 辅助漏洞挖掘,第一次以如此正式的姿态出现在国家级 CERT 的披露流程里。

阅读边界:补丁逆向的作者明确声明,未能在纯本地认证环境复现“SSH 接受字面 -2 用户名”的原生路径,实验室里由 RADIUS 应答器提供该用户名。野外目标可能启用了 RADIUS/User Manager 之类的外部认证,也可能存在未公开的初始访问原语。区分“已复现”与“已推断”,是读安全报道的基本功。

失陷检测:修复版本还内置了 Flagged 机制:设备启动时扫描配置里的已知未授权变更,自动禁用可疑条目、写 critical 日志、打上 Flagged 标记。但 CERT PL 强调——没有标记,不等于没有被入侵。

#

0x05、个人观察与判断

设计缺陷点评:比对漏了指数,验签又用客户端公钥——“匹配”与“验证”绑定了同一份不可信输入,是密码学工程最经典的反模式。凭据比较必须覆盖全部字段,验签必须用服务端存储的密钥。

行业趋势:网络设备仍是初始访问首选入口,公网暴露面即攻击面;本批漏洞由大模型辅助的协议状态机分析发现,AI 挖掘已进入国家级 CERT 生产流程,长尾漏洞的发现成本正快速下降。

排查建议:立即升级至 7.23.4/7.24.2;检索日志中 -2 用户与 ssh:-2 记录、排查 ops 等陌生账户;用 /system/device-mode/print 查 Flagged 标记;暂无法升级时将 SSH、WWW、bandwidth-test 限入可信网段并轮换密钥。

#

0x06、参考链接

1. CVE-2026-67276 官方记录(cve.org)

https://www.cve.org/CVERecord?id=CVE-2026-67276

官方漏洞描述、CVSS 4.0 评分与受影响版本范围

2. MikroTik 官方安全公告(2026-09-03)

https://mikrotik.com/supportsec/september-2026-vulnerability/

修复版本、升级指引与升级后的检查步骤

3. CERT Polska 技术通告(2026-09-05)

https://cert.pl/en/posts/2026/09/vulnerabilities-in-mikrotik-routeros-actively-exploited/

原始披露方:MikroTrick 攻击链、在野利用 IoC 与处置建议

  1. Github 仓库项目

https://github.com/dinosn/mikrotrick-poc


— END —

整理不易,如果这篇分析对你有用

点个红心 ❤️ 、在看与转发,是对我们最大的支持


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:信安百科 alicy alicy《CVE-2026-67276 | RouterOS SSH公钥认证绕过漏洞(POC)》

评论:0   参与:  0