OpenSSH 紧急修复 Alpine Linux 严重漏洞:超 256 字节密码即可突破 SSH 防线

IT之家 11 月 6 日消息,科技媒体 The Hacker News 最新报道称 OpenSSH 项目昨日(11 月 5 日)发布紧急更新 10.6p2,紧急修复一个允许用 257 至 1,024 字节长密码绕过 SSH 认证的漏洞。

报道指出攻击者若能访问目标服务器的 SSH 端口,无需真实密码,只需知道一个未设置密码的账户名,并提交一段 257 至 1,024 字节的长密码,即可成功登录该账户。IT之家附上相关图片如下:

在触发条件方面,该媒体指出仅限特定场景:服务器需运行未启用 PAM 的 openssh-server,开启密码登录,存在密码字段为 * 的无密码账户,且系统中至少还有一个使用 $5$ 或 $6$ 哈希的已设密码账户。而 Alpine Linux 默认构建的 OpenSSH 恰好符合前两项条件,因此风险不容忽视。

漏洞根源在于 sshd 与 musl 库的 crypt() 函数交互。当无密码账户的存储字段过短、无法提供盐值时,sshd 会借用其他账户的盐值;而 musl 对超过 256 字节的密码返回 *,恰好与无密码账户的存储值匹配,导致登录被错误放行。OpenSSH 项目称该问题自 2016 年起即可能存在。

受影响的不只 Alpine。安全研究人员指出,OpenWrt、Buildroot 和 Yocto 等基于 musl 的系统也需排查;不过 OpenWrt 默认使用的 Dropbear 不受影响,仅当管理员另行安装 OpenSSH 服务器时才可能暴露。

Alpine 已为 3.16 至 3.24 等多个版本发布修复包,3.21.10、3.22.8、3.23.8 和 3.24.4 等点版本也已包含修复。管理员应执行 apk upgrade -U -a 更新软件包,并重启 sshd 服务;若暂无法升级,应立即将 PasswordAuthentication 设为 no,改用 SSH 密钥登录。

OpenSSH 提醒,若日志中出现针对 root、alpine 或仅密钥账户的“Accepted password”记录,且无法排除异常登录,应将该主机视为已被入侵,并检查 doas 使用记录、新建用户、文件变动和授权密钥。目前尚无利用该漏洞的攻击报告,也暂未分配 CVE 编号。