本来只用密钥的账号,竟接受错误密码:OpenSSH修补一处判断漏洞
问题出在特定Linux组合:两个星号相等,被误当作身份验证成功。补丁已发布,安装后还须重启服务。
本来只准用密钥登录的服务器账号,竟可能接受一串错误的长密码。OpenSSH在2026年11月5日发布10.6p2,修补了部分Linux系统里的这种认证绕过问题。它不是所有Linux电脑都失守,而是几项特定设置拼在一起,让“密码计算失败”被当成了“密码正确”。
SSH是管理员远程进入服务器的常用通道。密钥登录则像用专门配好的电子钥匙开门,原本就不打算给账号设置密码。问题在于,账号不用密码,和服务器彻底关掉密码入口,是两件不同的事。后一扇门如果仍开着,程序就还会接收并检查密码。
研究者Özgün Kültekin所在的Wakefield团队称,他们把OpenSSH与不同底层组件组合起来,进行了约17600次异常登录测试,只有其中一种组合放行了本应拒绝的尝试。这不是把复杂密码算出来,而是找到两个程序对同一个返回值理解不同的缝隙。
在出问题的组合里,负责计算密码摘要的musl函数遇到过长输入,会返回一个星号表示失败。密码摘要可以理解为密码经过计算后的指纹。巧的是,一些不设置密码的账号,保存的也是星号。下游程序比较两边,发现符号相同,便把错误标记当成了匹配结果。就像门卫拿到一张写着“无法识别”的证件,又在名单上看到同样四个字,竟把它当作一个人的名字放行。
Alpine公告列出了限制:服务器使用musl、没有启用PAM这层身份验证组件、仍允许密码登录,并且存在特定的账号密码配置。并非装了Alpine就一定能被攻破;没有运行SSH服务的容器,以及关闭了密码登录的系统,不受这条攻击路径影响。默认设置下,root管理员账号也不是一律能直接登录。
这个案例之所以值得在补丁发布后继续看,是因为修复软件和修复运行中的服务不是同一步。Alpine提醒,安装更新以后还要重启SSH服务,旧进程不会因安装包被替换就自动换新。暂不能升级时,官方建议关闭密码认证,但先确认密钥登录可用,避免把自己锁在门外。
对租云服务器、维护网站的人,教训不只是把密码改长:再强的密码,也挡不住把失败当成功的判断错误。检查实际使用的组件和登录配置,比看到“只用密钥”四个字就放心更重要。
原始公告日期:2026年11月5日。
分享这篇文章
你觉得这篇文章怎么样?
匿名评价,无需登录,每篇最多 5 次。
匿名评价
写下你的看法,无需登录。
请围绕科技与文章讨论。禁止仇恨歧视、政治战争话题、威胁辱骂、人身指控、色情、广告、链接及个人信息。
还没有评价,来说第一句吧。