OpenSSH口令认证绕过安全通告-CVE-2026-123158"

admin 2026-11-09 01:14:18 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

OpenSSH口令认证绕过安全通告-CVE-2026-123158

观安MSS运营团队
观安MSS运营团队

观安无相实验室

2026年11月6日 16:59
浙江

去阅读

一、漏洞概述

2026 年 11 月 5 日,OpenSSH 发布 10.6p2,修复口令认证绕过漏洞 CVE-2026-123158,研究者称为 sshhole。同日 Alpine Linux 发布安全公告。报告人为 Wakefield 的 Özgün Kültekin。

公开评分以 CVSS 3.1 的 8.1 为准,向量为 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H。部分厂商按更低攻击复杂度评为 9.8。

这个漏洞它只出现在链接 musl libc、并且没有走 PAM 的 sshd 上。glibc 发行版的常规安装,默认启用 PAM,不受本次漏洞影响。

二、漏洞原理

未启用 PAM 时,sshd 用 C 库的 crypt() 计算用户提交的口令,再与 shadow 中保存的字段比较。2016 年为缓解用户名枚举(CVE-2016-6210),OpenSSH 对短到放不下一个 salt 的字段会借用另一个账户的 salt。musl 的 crypt() 在口令超过 256 字节时返回字符串 \。这个返回值与“未设置口令”账户保存的 \ 相同,比较通过,认证成功。

一次利用需要下面四个条件同时成立。口令长度约在 257 至 1024 字节,一次连接即可成功,不需要正确口令。

条件 说明
运行环境 sshd 链接 musl,且编译或配置为不使用 PAM。Alpine 默认包   openssh-server 属于此类
认证开关 PasswordAuthentication 为 yes。这是 OpenSSH 默认值
目标账户 口令字段恰好为 \*。常见于未设口令的 root、仅密钥账户、目录服务映射用户,以及   tiny-cloud 镜像中的 alpine 用户
盐来源 本机至少还有一个账户的口令哈希以 $5$ 或 $6$ 开头

root 还受 PermitRootLogin 约束。默认 prohibit-password 时,不能直接登录 root。若另一个可登录账户能通过 doas 或 sudo 提权,攻击者仍可在登录后成为 root。口令字段为 ! 的锁定账户不在本次绕过范围内。OpenSSH 项目认为根因在 sshd 之外,但可通过 sshd 利用,因此在 10.6p2 的 sshd 中做了规避。Alpine 稳定分支回植了同一修复,包版本不一定升到 10.6p2。

三、影响版本

Alpine 已核查 3.16 至 3.24 以及 edge,含已停止常规更新的 3.16 至 3.20。3.21 已于 2026 年 11 月 1 日结束支持,项目仍回溯发布了修复包。修复包版本如下。

分支 修复后的   openssh 版本 发行版节点
edge 10.6\_p2-r0 edge
3.24 10.3\_p1-r2 3.24.4
3.23 10.2\_p1-r1 3.23.8
3.22 10.0\_p1-r11 3.22.8
3.21 9.9\_p2-r1 3.21.10
3.20 9.7\_p1-r6 已停止常规支持,仍有修复包
3.19 9.6\_p1-r3 同上
3.18 9.3\_p2-r4 同上
3.17 9.1\_p1-r7 同上
3.16 9.0\_p1-r6 同上

自行编译、且未启用 PAM 的 musl 版 OpenSSH,修复起点是上游 10.6p2。启用 PAM,或已经设置 PasswordAuthentication no 的系统,不在受影响范围内。OpenBSD 自带的 OpenSSH 和 Dropbear 也不受影响。Red Hat 已声明其产品中不存在相应代码。

四、复现过程

容器启动 sshd 时加上 PermitRootLogin=yes。随后对本机该端口以 root 发起认证。终端先返回 Permission denied, please try again.,紧接着出现 uid=0(root)

本地复现结果

在 musl、未启用 PAM、口令认证开启,并且允许 root 口令登录时,未持有正确口令也可以登录 root。

五、修复与缓解

对公网或跨安全域开放 22 端口、且四条条件都成立的主机,应立即升级并重启 sshd。只升级软件包不会替换已经在跑的守护进程。

1. 升级上游包。自行编译的 OpenSSH 升级到 10.6p2 或更新版本,然后重启 sshd。

2. 升级 Alpine。执行 apk upgrade -U -a,再执行 rc-service sshd restart。包版本对照上一节的表,不必强求显示为 10.6p2。

3. 更新容器。重新构建镜像并滚动发布,确认旧 Pod 或旧容器已经退出。只作应用运行、内部没有 sshd 的 Alpine 容器不必因本次漏洞紧急处置。

4. 暂时不能升级时关闭口令登录。在 sshd\_config 中设置 PasswordAuthentication no,执行 sshd -t 后重启。重启前先确认密钥登录可用,并保留当前会话。Alpine 自 3.19 起会读取 /etc/ssh/sshd\_config.d,更老版本会忽略该目录,必须改主配置。改完后执行 sshd -T,确认输出含 passwordauthentication no。该措施不代替升级。

六、修复核验与排查

升级完成后核对下面五项。对升级前已经对不可信网络开放 SSH 的 Alpine 或 musl 主机,同时检查是否已经有登录。

1. 核对版本。包版本不低于上一节的表,或 ssh -V 显示 OpenSSH\_10.6p2 及以上。Alpine 回植包可以低于 10.6p2,以发行版公告中的包版本为准。

2. 核对进程。sshd 的启动时间必须晚于软件包安装时间。rc-service sshd restart 或等价操作必须实际执行过。

3. 核对配置。有效配置为 passwordauthentication no,或四条影响条件里至少有一条不成立。容器镜像摘要已更新,线上不再保留升级前的副本。

4. 新增检测规则。在 /var/log/messages 或本机 sshd 日志中查找本不应有口令的账户出现 Accepted password for,重点看 alpine、root 和仅密钥用户。同时看这些账户下是否新增 authorized\_keys、计划任务或用户,以及 doas、sudo 是否有非预期提权。不能排除已经登录成功的,按失陷主机处理:隔离、取证、从可信镜像重建,并轮换该机使用过的密钥和口令。

5.升级检测规则并执行批量核查。已部署 EDR 或态势检测组件的,将规则库升级至覆盖 CVE-2026-123158 的版本,并对前款资产下发一次全量检查。

来源:观安MSS运营服务团队

勒索事件日报:2026年-11月-06日" 网络安全文章

勒索事件日报:2026年-11月-06日"

11月6日全球勒索软件泄露站新增受害者27起,环比下降47%,Silentransomgroup点名三家律所,N0n发布实名客户数据,Settra以税务催缴单为筹码。主要受害者包括德国私募股权控股集团、美国建筑管理公司、IT服务提供商等,攻击团伙包括N0n、Akira、Silentransomgroup等。攻击目标从头部律所扩展到顶端律所,攻击手法从数据泄露转向财务风险。
评论:0   参与:  0