![]()
OpenSSH 是 OpenBSD 项目维护的 SSH 远程登录与加密传输组件,承载服务器远程运维、文件传输与自动化登录;musl libc 是面向容器与嵌入式场景的轻量 C 标准库,被 Alpine Linux、OpenWrt、Buildroot、Yocto 及大量容器基础镜像采用。
近日,OpenSSH 发布 10.6p2 安全版本,修复密码认证绕过漏洞(CVE-2026-123158,CVSS 3.1 高危 8.1 分,CWE-394)。在 Linux 上以 musl libc 构建且未启用 PAM 的 sshd,认证时会把提交的密码交给 crypt() 哈希后与 shadow 中的密码字段比较;目标账户的密码字段过短、无法提供盐值时,sshd 会借用其他账户的盐值,而 musl 的 crypt() 对超过 256 字节的密钥直接返回 *,与无密码账户的密码字段 * 完全相同,比较判等即通过认证。
攻击者只需一个连接、提交 257 至 1024 字节的密码,即可登录仅配置密钥登录或未设置密码的账户;该账户若具备免密 sudo/doas 权限,或本身是允许登录的 root,攻击者可直接取得主机最高权限。Alpine 官方同步发布修复包。
| 受影响产品 | 受影响版本 | 修复版本/补丁状态 |
|---|---|---|
| OpenSSH(Linux + musl、未启用 PAM 的 sshd) | 10.6p2 之前的版本 | 10.6p2 或更高版本 |
| Alpine Linux(openssh 包) | 3.16 – 3.24 及 edge | 3.24.4、3.23.8、3.22.8、3.21.10 等版本内的修复包 |
| Alpine tiny-cloud 云镜像 | 3.18.11 – 3.24.3 | 3.21.10、3.22.8、3.23.8、3.24.4 及之后的镜像 |
利用条件: sshd 运行于 musl libc 且未启用 PAM(Alpine 默认的 openssh-server 即属此列,openssh-server-pam 配合 UsePAM no 同样受影响),PasswordAuthentication 保持默认的 yes,系统中存在密码字段为 * 的账户(仅密钥登录的用户、未设置密码的账户、tiny-cloud 镜像内置的 alpine 用户;root 需 PermitRootLogin yes),且至少有一个账户持有 $5$ 或 $6$ 哈希。
大致利用链路: 向 sshd 提交 257 至 1024 字节的密码 → 目标账户密码字段过短,sshd 借用其他账户的盐值 → musl crypt() 因密钥超长返回 * → 与 shadow 中的 * 比较相等,认证通过 → 获得该账户的登录会话 → 借免密 sudo/doas 或以 root 身份提权。
受影响环境集中在容器与云镜像侧:Alpine 是主流容器基础镜像之一,其官方 tiny-cloud 云镜像 3.18.11 至 3.24.3 内置密码字段为 "*" 且可免密 doas 的 alpine 用户,一经部署即满足前置条件;管理员在控制台设置过密码或通过 user-data 注入密码哈希后,攻击者即可用一个连接取得 shell 并借 doas 提权至 root。该漏洞相关PoC 已公开,建议优先处置修复。
通过 FOFA 测绘可以看到,截至当前,全球暴露在公网的 OpenSSH 相关资产约为 188,011,272 条,共涉及 61,922,956 个独立 IP。![]()
盘点使用 musl 的 sshd:Alpine、OpenWrt、Buildroot、Yocto 设备与 musl 容器基础镜像,执行 sshd -T 确认 passwordauthentication 与 usepam 的实际取值。
升级至 OpenSSH 10.6p2 或更高版本;Alpine 执行 apk upgrade -U -a 后必须执行 rc-service sshd restart,仅升级软件包不会替换正在运行的 sshd 进程。
无法立即升级时,将 PasswordAuthentication 设为 no 并重启 sshd,同时把 PermitRootLogin 设为 prohibit-password 或 no。
排查 /var/log/messages 中本应无密码的账户是否出现 Accepted password for 记录,并核查 sudo/doas 使用、近期新增用户与 authorized_keys 变更。
不要将 shadow 中的 "*" 直接改为 "!":在未启用 PAM 的 musl 系统上,这样会让该账户的密钥登录一并失效,应通过升级或关闭密码认证解决。
华顺信安安全产线产品已支持 OpenSSH 相关产品组件暴露面风险资产规则识别,可用于辅助完成资产定位与修复排查。
![]()