依赖于 Alpine Linux 特定配置以及可能其他发行版的设备正面临一个存在约十年的陈旧安全漏洞,该漏洞允许攻击者在完全不需要输入密码的情况下登录目标设备。
该漏洞被称为 *sshole,其根源在于负责 SSH 连接的 OpenSSH 库与 Alpine Linux 中使用的 libc 轻量级替代库 musl 之间的交互方式。要触发该漏洞,OpenSSH 与 musl 必须不使用 PAM 身份验证框架,此外还需满足其他条件,例如存在使用 SHA256 或 SHA512 函数加密密码的用户账户,且该账户在配置文件中通过星号标记被指定为无密码账户。
实际会发生什么变化?
当满足上述所有条件时,能够访问 SSH 端口的攻击者只需在密码字段中输入超过 256 个字符即可登录。Alpine Linux 的开发人员确认,该攻击通过单次连接即可完成,并且每次都能成功,无需多次尝试。
网络安全公司 Checkpoint 指出,使用上述加密算法起到了关键作用,因为 sshd 服务依赖于相关账户的随机盐值(salt)。该公司还指出,在禁止密码登录的默认设置下,root 账户仍然是安全的,而拥有 sudo 或 doas 权限的账户则容易受到攻击。
影响范围与修复措施
Alpine Linux 非常受欢迎,其 Docker 基础镜像的使用量已超过 10 亿次,此外在嵌入式设备、路由器、服务器和数字容器中也占有重要地位。Detectify 公司的估计显示,有数百万个系统在 22 端口上处于开放状态,尽管其中只有一小部分符合该漏洞的触发条件,但由于扫描非常容易,风险依然存在。
OpenSSH 和 Alpine Linux 的相关责任方均已发布安全更新以解决此问题,而库开发人员之间对于缺陷的根本原因是在 OpenSSH 还是 musl 中存在技术分歧。由于目前尚无正式的 CVE 标识符,建议技术人员和系统管理员立即检查基础设施并应用可用的更新。