Alpine 公告 OpenSSH 密码认证可被绕过:升级后必须重启 sshd
作者:林序
Alpine Linux 11 月 5 日发布安全公告,其打包的 openssh-server 存在密码认证绕过漏洞,能连上 SSH 端口即可无密码登录;官方要求升级后重启 sshd,无法升级则关闭密码登录。
Alpine Linux 11 月 5 日发布安全公告:官方打包的 openssh-server 存在密码认证绕过漏洞,攻击者只要能连上 SSH 端口,一次连接就能在不知道密码的情况下登录,不需要重试 。公告在 Hacker News 上获得 89 分讨论 。
问题出在校验环节。sshd 在未启用 PAM 的构建里用 crypt() 把尝试输入的密码算成哈希,再和存着的密码字段比对。musl 的 crypt() 遇到超过 256 字节的密码会返回一个星号 "*",而这恰好就是无密码账户(密钥登录账户的常见形态)密码字段里的内容,比对于是通过 。上游 OpenSSH 10.6p2 已修复,Alpine 各稳定分支打了同样的补丁;公告发布时还没有分配 CVE 编号 。
不是所有机器都会中招,要同时满足三条:跑的是不带 PAM 的 openssh-server(或 openssh-server-pam 但 UsePAM no);PasswordAuthentication 为默认的 yes;机器上存在密码字段为 "*" 的账户,且至少有一个账户是 $5$ 或 $6$ 密码哈希 。Alpine 检查过的 3.16 到 3.24 以及 edge 全部受影响,包括已停止常规支持的旧版本 。容器里没跑 sshd、已设 PasswordAuthentication no、用 UsePAM yes 的机器不在其中 。
处置办法是升级,然后重启。执行 apk upgrade -U -a 之后要跑 rc-service sshd restart,只换包不重启,正在运行的守护进程还是旧的 。修复版本:3.24 为 10.3_p1-r2,3.23 为 10.2_p1-r1,3.22 为 10.0_p1-r11,3.21 为 9.9_p2-r1,最低到 3.16 都已出包 。一时升不了的,在 sshd 配置里设 PasswordAuthentication no 并重启,同样能堵上 。日志里如果出现为无密码账户记下的 "Accepted password",按已被入侵处理 。
转载说明
本文根据以下公开资料整理,原文及配图出处见下方。
评论 0
还没有评论,来抢沙发。