OpenSSH 爆出 10 年老漏洞:输入超长密码,就能绕过 SSH 登录验证|CVE-2026-123158

原始链接在: OpenSSH 爆出 10 年老漏洞:输入超长密码,就能绕过 SSH 登录验证|CVE-2026-123158 - 小众软件

一个超长密码,就能攻破 SSH?

OpenSSH 爆出一个隐藏了约 10 年的严重漏洞:攻击者无需知道真实密码,也不需要 SSH 私钥,只需输入一串超长密码,就可能绕过 Linux 账户的密码锁定机制,直接登录系统,甚至获得 root 权限。@Appinn

11 月 5 日,OpenSSH 紧急发布 10.6p2,修复了这个被研究人员命名为 *sshole 的严重漏洞(CVE-2026-123158),评分 8.1 分(高危)。

在满足特定条件的服务器上,攻击者无需知道密码,也不需要 SSH 私钥,就可能成功登录系统,甚至获得 root 权限。

先别慌:这次主要影响 Alpine Linux 等使用 musl libc 的系统,常规 Ubuntu、Debian 服务器不受影响。

一个超长密码,为什么能登录 SSH?

正常情况下,如果 SSH 服务器开启了密码登录,用户必须输入正确的密码才能登录。而对于那些没有设置密码的 Linux 账户,无论输入什么密码,都应该无法登录。

但研究人员 Özgün Kültekin 发现,在部分 OpenSSH 与 musl libc 的组合中,只需要输入一串超长密码,竟然就能登录这些原本无法通过密码登录的账户。(强调一下,有密码的账户不受影响,没设置密码的账户受影响)

Linux 的 /etc/shadow 文件使用 * 表示账户没有有效的密码哈希,无法通过普通密码验证登录。

巧合的是,musl libc 的密码处理函数 crypt() 遇到超过 256 字节的密码时,也会返回 *,表示处理失败。

问题就出在这里。

在特定情况下,OpenSSH 把两个 * 当成了密码验证成功。

于是,攻击者只需要知道目标用户名,输入一段 257~1024 字节的任意密码,就可能绕过身份验证。

整个过程不需要猜测密码,也不需要反复尝试。

这个问题源于多个组件之间的逻辑交互,相关代码可以追溯到 2016 年。

哪些服务器会受到影响?

这次漏洞有比较严格的触发条件。受影响的服务器需要同时满足:

  • 使用 musl libc,例如部分 Alpine Linux、OpenWrt 或嵌入式 Linux 系统。
  • OpenSSH 没有使用 PAM 进行密码验证。
  • SSH 开启了密码登录(PasswordAuthentication yes)。
  • 存在密码字段为 * 的账户。
  • 至少有另一个本地账户使用符合条件的有效密码哈希。

其中,Alpine Linux 尤其值得注意。

Alpine 经常用于 Docker 容器、云服务器和轻量级 Linux 环境,其 OpenSSH 服务端默认不使用 PAM。

研究人员还指出,部分 Alpine 官方云镜像中的默认账户具有免密码执行 doas 的权限。一旦攻击者成功登录,可能进一步获得 root 权限。

普通 Ubuntu、Debian、Fedora 等使用 glibc 的系统,不受此次漏洞影响;使用 Dropbear SSH 服务端的设备同样不受影响。

OpenSSH 已紧急修复,Alpine 也发布了补丁

OpenSSH 已于 11 月 5 日发布 10.6p2,阻止无效密码哈希被错误地判断为验证成功。

Alpine Linux 也为多个版本分支提供了修复软件包,包括部分已经结束常规支持的旧版本。

如果正在使用 Alpine Linux,可以执行:

apk update
apk upgrade
rc-service sshd restart

如果暂时无法更新,可以先确认 SSH 密钥登录正常,然后在 SSH 服务端配置中关闭密码验证:

PasswordAuthentication no

(此处再次验证了取消密码登录的含金量啊)

目前有实际攻击吗?

截至 11 月 6 日,尚未发现经过确认的公开利用案例。

但漏洞技术细节已经公开,满足攻击条件的服务器应尽快修复,尤其是直接暴露在公网的 SSH 服务。


原文:https://www.appinn.com/openssh-sshole-cve-2026-123158/

相关链接:

漏洞编号: CVE-2026-123158
漏洞名称: *sshole
修复版本: OpenSSH 10.6p2(发行版也可能提供旧版本补丁回移)
披露日期: 2026 年 11 月 5 日

现在AI发现的漏洞啊,越来越匪夷所思了

补一张图,来自 tombkeeper

想当年一个 心脏出血 漏洞 都是十多年不遇,大家能讨论几个月。现在这个级别的一个月都能来几次。今年AI太君发力,漏洞多的人都麻来。

并不影响常见于服务器的Linux系统。

此漏洞在默认情况下只会影响以下常见发行版:

  • Alpine

在特定情况下可能影响以下发行版:

  • OpenWrt 但自行安装启用了 openssh-server 而不是 openssh-server-pam
  • 其他 musl 发行版并因某种原因关闭了 PAM

确实啊,毕竟

  • 大部分系统(Ubuntu、Debian、Fedora)用的 C 库是 glibc 并不是漏洞利用门槛中的musl libc
  • 最常碰到用 musl libc 的是 Docker 中的 Alpine Linux,但正常谁会给 Docker 里的系统启用 OpenSSH 啊
  • 就算启用了 OpenSSH,谁没事把容器的 SSH 端口给映射到宿主机公网啊