只要输入超长密码 即可绕过身分验证
【注意 ⚠️】原本小编已经在床上,但收到如此严重的网络安全通报,也只能「碌落床」通知大家。广泛应用于 Unix 与 Linux 系统的远端连线工具 OpenSSH 被发现严重安全漏洞,在特定条件下只需「求其」输入长度介乎 257 至 1,024 位元组的超长密码,即可直接绕过身份验证,登入未设定密码或仅限金钥认证的帐号。OpenSSH 团队已将该漏洞列为严重等级,并火速释出 OpenSSH 10.6p2 版本进行修补,当中以 Alpine Linux 受影响最深。
这项安全漏洞由资安研究员 Özgün Kültekin 发现并通报,他将漏洞命名为「*sshole」(SSH Hole 的意思)。在运行标准 openssh-server 套件的 Alpine Linux 伺服器上,只要满足安全公告列出的四个条件︰
◾未启用 PAM 机制
◾设定档中开启了密码验证功能
◾存在无密码帐号
◾系统中至少存在一个有效杂凑帐号
攻击者就能利用系统中某个未设定密码的帐号名称(如仅以 SSH Key 登入的帐号),透过输入 257 至 1,024 位元组的长密码发动攻击。此漏洞每次尝试均能百分之百成功,甚至能以单次连线直接绕过验证。
OpenSSH 专案核心成员 Damien Miller 表示,该问题源于 OpenSSH 伺服器端守护进程(sshd)与 Alpine Linux 所採用的轻量级 C 函数库 musl 之间的交互作用。採用 glibc 的标准 Linux 发行版、非 Linux 系统,以及透过可插拔认证模组(PAM)机制验证密码的系统,均不受此漏洞影响。
在 Alpine Linux 中,无密码设定的帐号极为常见,包括透过 adduser 建立但未设定密码的帐号、透过 musl-nscd 介接目录服务的帐号、Alpine 3.16 起官方映像档中预设的 root:*,以及云端映像档预设的 alpine 使用者。
值得注意的是,虽然 root 帐号预设有 PermitRootLogin prohibit-password 保护,但官方云端套件(tiny-cloud,版本 3.18.11 至 3.24.3)预设赋予 alpine 使用者免密码执行 doas 的权限。一旦管理员曾为控制台设定过密码(产生了 $6$ 杂凑),攻击者便能利用此漏洞登入 alpine 帐号,进而藉由 doas 取得最高 root 权限,完全控制伺服器。
除 Alpine 外,採用轻量级 C 函数库 musl 的 OpenWrt、Buildroot 与 Yocto 等嵌入式系统亦属于高风险目标。
由于目前漏洞已经被公开,所有使用 Alpine Linux 发行版或採用轻量级 C 函数库 musl 的伺服器,请立即更新 OpenSSH 至 10.6p2 版本进行修补。
截至目前为止,该漏洞尚未获分配 CVE 编号。
资料来源: