漏洞预警丨OpenSSH musl 环境密码认证绕过漏洞(CVE-2026-123158 / "sshole")

· 2026-11-06 16:41 · 1 阅读

原创 烽火台实验室 2026-11-06 16:41 北京

一、漏洞概述

近期,互联网上披露了 OpenSSH 在使用 musl libc 且禁用 PAM 的 Linux 系统上存在密码认证绕过漏洞(CVE-2026-123158,研究者命名为 "sshole")。攻击者远程提交一段长度在 256~1024 字符之间的任意密码,即可登录 shadow 密码哈希字段为 *(本应禁止密码登录)的账户(如 root、仅密钥登录的部署账户、LDAP 用户等),可能导致服务器被完全接管。Alpine Linux 官方 AWS/Azure 镜像默认配置即受影响,且默认用户具备免密 doas,可直接提权至 root。为避免您的业务受影响,建议您及时开展安全风险自查。

OpenSSH(OpenBSD Secure Shell)是使用最广泛的 SSH 协议 2.0 开源实现,提供 sshd 服务端与 ssh/sftp 客户端,是 Linux 服务器远程管理的事实标准组件。musl libc 是 Alpine Linux、OpenWrt、Buildroot、Yocto 等轻量级发行版及大量 Docker 基础镜像所使用的 C 标准库。

据描述,漏洞成因是一系列历史设计的叠加:musl 的 crypt(3) 在出错时(包括密码超过 256 字节的 SHA512-crypt 密钥上限时)不返回 NULL,而是返回固定字符串 *;而 Unix 传统上以 * 作为密码哈希字段表示"该账户禁止密码登录"。OpenSSH 自 2016 年为修复用户枚举漏洞(CVE-2016-6210)引入了"为无效用户提供假盐"的时序均衡逻辑,在无 PAM 的情况下会对用户提交的密码调用 crypt(3) 并将结果与 shadow 中的哈希字段比对。当攻击者对哈希字段为 * 的账户提交超过 256 字符的密码时,musl 的 crypt(3) 恰好返回 *,与存储字段完全一致,比对通过,认证即被绕过——无需任何凭据。该问题自 2016 年起潜伏近十年,于 2026 年 11 月由 Wakefield 的研究员 Özgün Kültekin 发现并报告,OpenSSH 10.6p2(2026-11-05 发布)已发布修复。

漏洞影响的产品和版本:

  • OpenSSH Portable < 10.6p2(Linux 平台)

  • 触发条件(需同时满足):

  • sshd 运行于 musl libc 环境(Alpine Linux、OpenWrt、Buildroot、Yocto,以及大量基于 musl 的 Docker 镜像)

  • 构建/运行时未启用 PAM(Alpine 的 openssh-server 默认不启用 PAM,或配置了 UsePAM no)

  • sshd 开启密码认证(默认开启)

  • 存在 shadow 密码哈希字段为 * 的账户(如 Alpine 3.16+ 默认 root、仅密钥登录用户、LDAP 用户),且系统中另有任一账户设置了真实密码哈希

  • 不受影响:glibc 发行版(Debian/Ubuntu/RHEL 等走 PAM 的系统)、dropbear、OpenBSD 原生版

二、漏洞复现

三、资产测绘

据 daydaymap 数据显示互联网存在 96,671,614 个资产,风险资产分布情况如下。

全球分布:

国内分布:

四、解决方案

修复方案:

  • 升级 OpenSSH 至 10.6p2 或更高版本(Alpine:apk upgrade openssh),或安装各发行版提供的回补安全更新包

  • 临时缓解(无法立即升级时):关闭 sshd 密码认证并重启服务:

  • echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-no-passwords.conf

  • rc-service sshd restart(或对应 init 系统的 restart 命令)

  • 检查 /etc/shadow,确认 * 账户是否被用于业务登录;梳理是否存在免密 doas/sudo 的默认账户

  • 排查是否已被利用:使用 github.com/oz9un/sshole 提供的检测脚本检查认证日志中"无密码账户出现密码认证成功"的记录

  • 建议长期将面向公网的 sshd 收敛为仅密钥认证,并限制来源 IP

五、参考链接

    •  OpenSSH 10.6p2 发行说明:https://www.openssh.org/releasenotes.html#10.6p2
    •  漏洞分析页(sshhole.com):https://sshhole.com/
    •  oss-security 邮件列表通告:https://www.openwall.com/lists/oss-security/2026/11/05/3
    •  CVE 记录:https://nvd.nist.gov/vuln/detail/cve-2026-123158
    •  Alpine 官方公告:https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/
    •  修复 commit:https://github.com/openssh/openssh-portable/commit/4353fdc43ef646c43a8dda7025cc1a898caf1482

    跳转微信打开

    本文转载自微信公众号「Beacon Tower Lab」,查看原文。版权归原作者所有,如有侵权请联系删除。