服务器机房,粗大的黑色电缆穿行于计算机机柜之间

· 译自西班牙语原文

网络安全

一个超长密码,就能打开 OpenSSH 与 musl 下的 Linux 无密码账户

*sshole 漏洞影响使用 musl 且不含 PAM 的系统,例如 Alpine。补丁已经发布,但许多嵌入式设备恐怕短时间内难以完成更新。

发生了什么

  • 研究人员 Ozgun Kultekin 于2026年11月5日披露了一个名为 *sshole 的漏洞,出现在 OpenSSH 与 musl 的交互中。musl 是 Alpine 等 Linux 发行版使用的一种轻量级 C 库。
  • 攻击者只需输入一个超过256个字符的密码,就能进入某些被设置为禁止使用密码的账户。
  • Alpine 的维护者这样概括:任何能访问 SSH 端口的人,都可以在不知道任何密码的情况下登录,只需一次连接,无需重试。
  • OpenSSH 在同一个周四发布了修复,版本为 10.6p2。Alpine 也发布了更新。

为什么重要

  • Linux 用星号标记不得使用密码的账户。这个保护性标志,恰恰被这个漏洞变成了入口。
  • 据 Ars Technica 报道,Alpine 被用在路由器、智能电视和工业控制器中,其中许多设备很难甚至无法更新。
  • Kultekin 警告说,Alpine 在 AWS 和 Azure 上的官方镜像自带一个受影响的 alpine 账户,该账户拥有无需密码的 doas 权限,可能因此获得管理员权限。

关键数字

256字节。 这是 musl 的 crypt() 函数的上限。如果密码超过这个长度,函数就会返回一个星号,而 OpenSSH 会把它与账户中存储的星号比较。两者一致,访问就被放行。

背景

这个漏洞源于一次修复。2016年,OpenSSH 为修复漏洞 CVE-2016-6210 而改变了行为,该漏洞使人们可以通过响应时间推断出用户名。此后,即使对没有可用密码的账户,它也会计算哈希,而问题正出在这里,它在此与 musl 撞到了一起。

有一些前提条件:系统使用 musl,PAM 认证被禁用(Alpine 默认如此),并且存在一个带星号的账户。Check Point 补充说,另一个账户必须使用 SHA256 或 SHA512,因为 sshd 会借用它的盐值。使用 glibc 的系统,如 Debian、Ubuntu 和 Fedora,不受影响。对于拥有有效哈希的账户,也无法绕过密码。

OpenSSH 和 musl 对问题的根源究竟在哪一方存在分歧:双方都把责任推给对方。Ars Technica 还指出,目前没有已知的 CVE 编号。Kultekin 说,他是借助 AI 智能体发现它的,这些智能体执行了约17,600次认证测试。

我们在 Mamífero 一直关注这类漏洞。我们报道过PHP 修复了搁置两年的两个远程执行漏洞,以及攻击者利用 cPGuard 更新窃取数据。还有WorkOS 遭到自动化攻击,以及Claude 测试了123个开源库的安全性。

接下来

  • Alpine 管理员应运行 apk upgrade openssh;如果做不到,则在 SSH 中禁用 PasswordAuthentication。
  • 值得检查日志,看是否有本不应允许密码登录的账户出现了密码登录。
  • OpenWrt、Buildroot 和 Yocto 是否受影响,尚待确认:据 Ars Technica 报道,OpenWrt 默认使用 Dropbear,而不是 OpenSSH。

一句话总结

2016年的一次修复,加上另一个库里的一个错误返回值,让一扇门敞开了十年。现在困难的是,要在没人更新的设备上把它关上。

来源

  • BleepingComputer,“OpenSSH flaw lets attackers log into password-disabled Linux accounts”,2026年11月5日,链接。
  • Ars Technica,“Meet *sshole, the vulnerability that lets hackers SSH into Linux devices”,2026年11月5日,链接。
  • 封面图片:Esquilo,CC BY-SA 3.0,来自 Wikimedia Commons

编辑:Rodrigo Cornejo。我们如何挑选和核实:谁在写这些笔记。

相关笔记

← 全部笔记