ByteNoteByteNote
一个星号就能登录你的服务器:sshhole 绕过始末
字

字节笔记本

2026年11月7日 · 约 5 分钟读完

一个星号就能登录你的服务器:sshhole 绕过始末

API中转
¥120

OpenSSH 10.6p2 在 11 月 5 日紧急发布,修复一个逻辑漏洞:在 Alpine 这类 musl 系统上,攻击者用一个 257–1024 字节的密码,就能以任何密码字段为单个 * 的账号登录——包括密钥登录用户、LDAP 用户,以及 Alpine 3.16 以来默认配置下的 root。漏洞编号 CVE-2026-123158,MITRE 记录评 CVSS 3.1 8.1 分(高危)。研究员 Özgün Kültekin(网名 Wakefield)发布了完整技术分析站与验证脚本仓库(check.sh、PoC、补丁;仓库 2026-11-05 创建,核查时 194 星)。HN 上这条消息 2916 分、734 条评论——当日最高分(2026-11-07 快照)。

sshhole.com 事件时间线页面截图

先把性质说清:这是逻辑漏洞,不是内存破坏;本文只讲触发条件、检测与修复,不含可复制的攻击步骤。

机制:两个各自合理的决定,拼在一起出了洞

  • musl 侧:crypt() 在处理超过 256 字节的 SHA-256/SHA-512 密码时拒绝计算,而自 2012 年起,它失败时返回的是单个字符 "*",不是 POSIX 规定的 NULL——当年的考虑是让失败可见;
  • OpenSSH 侧:不走 PAM 时,sshd 自己调用 crypt() 比对密码——把返回值与 /etc/shadow 里的密码字段直接比;
  • Alpine 侧:很多账号的 shadow 密码字段恰好就是单个 "*"(表示"此账号不走密码登录")。

三个事实连起来的结果:超长密码算出 "*",shadow 里存的也是 "*",两个星号相等,登录放行。OpenSSH 那个"比对 crypt 返回值"的逻辑还有一个来源:2016 年修复用户枚举漏洞(CVE-2016-6210)时引入的"借盐"逻辑——从同文件里另一个真实账号借 $5$/$6$ 哈希来算,这也成了触发条件的一部分。

触发条件(缺一不可,Alpine 官方通告口径)

  1. sshd 跑在 musl 系统上(Alpine、OpenWrt、Buildroot、Yocto);
  2. 不走 PAM(Alpine 默认 openssh-server 包编译时 --without-pam);
  3. 密码登录还开着(默认开);
  4. 目标账号的密码字段恰好是单个 *;
  5. 且系统里另有一个账号存有真实的 $5$/$6$ 哈希,可供借盐。

影响面与现状

影响面最扎心的细节:Alpine 官方 AWS/Azure 云镜像的默认 alpine 用户即符合全部条件,且该用户有无密码 doas,等于直接 root。反过来,glibc 发行版(Debian、Ubuntu、Fedora 等)、走 PAM 的 sshd、Dropbear、OpenBSD 都不受影响。现状(截至 2026-11-06 各方口径):未见野外利用报告;CISA 对该 CVE 的利用状态标注为"已有 PoC"——注意"没有野外报告"不等于"没人用过",只是还没有公开证据。

十年时间线(sshhole.com 整理)

1980 年,Bill Joy 在 BSD-3 的 /etc/passwd 里给 daemon 账号写 *;2012 年,musl 改了 crypt() 的失败返回值;2016 年,OpenSSH 为防用户枚举引入借盐;2019 年,Alpine 镜像爆出 root 无密码(CVE-2019-5021),随后把 root 锁成 !;2022 年,Alpine 3.16 为恢复密钥登录把 root 改成 *。每一个决定单独看都说得通,十年间无人把它们连起来。

检测与修复

oz9un/sshole 验证脚本仓库页面截图

修复分两层:上游 OpenSSH 10.6p2(11 月 5 日发布);Alpine 同日为 3.16 至 3.24 全部分支发布回移植包——注意 Alpine 的包版本号不跟着上游走(例如 3.22 分支是 10.0_p1-r11),查包管理器的版本,别用 sshd -V 判断。OpenSSH 维护者 Damien Miller 在邮件列表里要求受影响的管理员"立即"设 PasswordAuthentication=no 或暂时关闭 SSH。检测可直接用研究员发布的 check.sh。对照记忆里另一个"绕过"——上月 Firecracker 逃逸链是虚拟机逃逸、靠内核漏洞起链,这次是纯认证逻辑绕过,两回事。

参考来源

相关文章

分享: