OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

2026-11-06 12:19:21 0点赞 0收藏 0评论

SSH,出了个漏洞。

不需要知道密码,只要对一个 “没设密码”的账户 ,塞过去一段 257 到 1024 字节的长密码,它就直接放你进去了。

OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

漏洞编号 CVE-2026-123158 ,CVSS 评分 8.1 ,高危。

OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

所以先别看了,先关了再来。

OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

那么事情是这样的,11 月 5 号,OpenSSH 项目紧急发了 10.6p2 ,就为了补这个洞。OpenSSH 的核心开发者直接喊话,没升级的机器,立刻把 PasswordAuthentication 设成 no,或者直接关掉 SSH。

漏洞原理

SSH 校验密码,是把用户输的密码,用 crypt() 函数算一遍哈希,再拿去跟 /etc/shadow 里存的哈希比对。

问题出在 两层东西的配合 上。

第一层:sshd 的“借盐”行为

有些账户没设密码,它的存储字段里就一个星号 * ,意思是“这账户压根没密码,别想用密码登录”。

这种字段太短,连“盐”(哈希前面那串随机前缀)都没有。

于是 sshd 会去 借别的账户的盐 来算,好让“密码错误”的耗时看起来像那么回事,防止别人靠响应速度猜到账户存不存在。

这个“借盐”,是 2016 年修另一个漏洞时留下的。

第二层:musl 这个 C 库的脾气

musl 是 Alpine Linux 用的那个轻量 C 库,跟 Ubuntu、Debian 用的 glibc 不一样。

musl 的 crypt() 函数有个毛病:你给它一个 超过 256 字节的密码 ,它不给你算,直接返回一个星号 * ,意思是“出错了”。

「把这两层一叠,好戏来了」

攻击者对那个没密码的账户,输一段 300 字节的长密码。

sshd 借了别的账户的盐,拿去让 musl 算。

musl 一看密码太长,返回 * 。

这个 * ,恰好跟账户里存的那个 * ,一模一样。

等于说, * 等于 * ,比对通过,登录放行。

一个本来 “绝不能用密码登录” 的账户,被一段乱填的长密码,硬生生捅开了。

而且这攻击 一次连接就成 ,不用重试,不需要任何攻击代码。

你想想这画面,别人连个正经漏洞利用工具都不用写,就粘贴一长串 A 进去,门开了。

OpenSSH 紧急修复关键漏洞,请禁用 SSH,切勿继续阅读

中招条件

也不是谁都中招,要中招得 满足好几个条件 。

系统用的是 musl 库,典型就是 Alpine Linux。

sshd 没开 PAM 认证。

开着密码登录。

系统里有一个“没设密码”的账户(字段是 *)。

系统里还得有至少一个“正常设了密码”的账户(用 $5$ 或 $6$ 那种哈希)。

值得注意的是Alpine Linux 的默认 openssh-server,必中前两个。

💡 而且 Alpine 那套官方云镜像,从 3.18.11 到 3.24.3,自带的 alpine 账户字段就是 * ,还配了免密 doas。

什么意思,就是攻击者绕过密码进了 alpine 这个低权限账户,再顺手 doas 一下,直接变 root 。

低权限的登录绕过,在暴露的机器上,能变成 整台机器的沦陷 。

最绝的是,这洞从 2016 年就埋在那了 。

整整十年,没人发现,或者说,没人往那个方向去捅。

ai立大功

安全研究员靠AI 助手,跑了大概 1.76 万次 认证测试,把不同的 OpenSSH 配置、各种畸形的密码哈希、超长密码,全试了一遍。

最后试出来这条缝。

受影响的不止 Alpine,OpenWrt、Buildroot、Yocto 这些用 musl 的嵌入式系统,都得排查。

不过 OpenWrt 默认用的是 Dropbear,不是 OpenSSH,所以默认没事,只有你自己另装了 OpenSSH 才中招。

glibc 那帮主流发行版,Ubuntu、Debian、红帽这些, 不受影响 。

怎么办

赶紧升级 ,OpenSSH 升到 10.6p2 ,或者 Alpine 直接 apk upgrade -U -a ,然后重启 sshd。

注意,光升级包没用,sshd 这进程得重启,补丁才生效。

升不了的话,就把 PasswordAuthentication 设成 no,改密钥登录,先堵上。

去查日志,找那种 “没密码的账户居然 Accepted password 登录成功” 的记录,比如 alpine、root 这种账户,明明不该有密码登录,结果日志里出现了。

有,就得按 “已经被入侵” 来对待,查 doas 记录、查有没有新用户、查文件改动、查授权密钥。

💡 目前还没有人真的拿这个洞搞事的报告,但公开的复现环境已经有了,等于说,攻击代码是现成的。

启示

说白了,就一句:越是“轻量、极简、没人盯着”的东西,越可能藏着没人看见的洞。

Alpine 号称全世界最流行的容器基础镜像,天天有海量的人在用它跑服务,可它底下的那点事, 十年没人翻 。

极简,意味着好用,也意味着盯着它的眼睛少。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
京东京享红包
距结束::
领京东现金红包 天天领3次 最高26888元
红包按钮
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松