首页 > 安全公告 > 正文

关于OpenSSH_musl_密码认证绕过漏洞(QVD-2026-104595)的安全公告

来源:时间:2026-11-06点击数:

大工网安告[2026039]

一、 情况分析

OpenSSH是OpenBSD项目维护的广泛使用的开源SSH远程登录与加密传输服务组件,被广泛应用于Linux、Unix及嵌入式系统。musllibc是面向嵌入式与容器场景的轻量级C标准库,被AlpineLinux、OpenWrt、Buildroot、Yocto及大量Docker镜像采用。

近日,监测到官方修复OpenSSH/musl密码认证绕过漏洞(QVD-2026-104595),该漏洞源于musllibc的crypt()函数在失败时返回单字符"*"(而非POSIX规定的NULL),而OpenSSH在未启用PAM的认证路径中,对密码字段为"*"的账户借用其他账户的真实盐值执行crypt()校验。当攻击者提交257~1024字节的超长密码时,musl的crypt()因KEY_MAX(256)长度限制返回"*",与影子密码字段"*"比较相等,strcmp判定通过,导致攻击者无需任何有效凭据即可通过SSH密码认证登录仅允许密钥登录或已锁定密码的账户。成功绕过认证后,若目标账户具备免密sudo/doas权限(如Alpine云镜像默认alpine用户),攻击者可直接提权至root实现完全控制。目前该漏洞PoC和技术细节已公开。

威胁类型:认证绕过。

技术类型:不恰当的认证。

危害描述:攻击者可利用muslcrypt()失败返回"*"的特性,伪造有效密码认证,绕过仅密钥/锁定账户的访问控制,获得该账户的登录会话;若该账户具备免密sudo/doas权限或为root(PermitRootLoginyes),可直接获取root权限,造成主机完全失陷。

二、 影响版本

2016年以来至10.6p2之前,运行于musllibc且未启用PAM的OpenSSHsshd(Alpine、OpenWrt、Buildroot、Yocto及muslDocker镜像)。

三、 处置建议

修复解决方案(含漏洞补丁):

官方已发布安全补丁,请及时更新至最新版本:

OpenSSH>=10.6p2

Alpine等musl发行版可执行apkupgradeopenssh并重启sshd;源码部署需升级到10.6p2后重新编译安装。

缓解措施:

1.关闭密码认证并重启sshd:在/etc/ssh/sshd_config.d/00-no-passwords.conf写入PasswordAuthenticationno(Alpine执行rc-servicesshdrestart);

2.将PermitRootLogin设置为prohibit-password或no;

3.注意:在未启用PAM的Alpine等musl系统上,不要将/etc/shadow中的"*"改为"!",否则会导致合法用户无法使用SSH密钥登录;

4.若已暴露,应检查sshd日志中本应无密码的账户是否出现Acceptedpassword记录。


地址:大连市甘井子区凌工路2号,大连理工大学 邮编:116024

电话:0411-84708645 copyright2013 大连理工大学网络与信息化中心