
最近一个名为 sshole(CVE-2026-123158)的安全漏洞引发运维圈广泛关注,它是 OpenSSH 与 musl libc 交互引发的认证绕过问题,大量 Alpine Linux、Docker 容器环境受影响。
这个漏洞的原理很有意思,并不是传统意义上的密码破解。 在 Linux 系统里,账户密码字段标记为*,代表这个账号禁止密码登录。而 musl 库在处理超过 256 字节的超长密码时,哈希计算失败,返回的结果恰好也是*。OpenSSH 在校验时直接比对字符串,两个含义完全不同的星号被判定为匹配,攻击者随便输入一段超长字符,就能绕过密码校验登录系统。
⚠️ 重点影响范围:
采用 musl libc、OpenSSH 未开启 PAM 认证的环境,最典型就是 Alpine Linux。Docker 生态里 Alpine 基础镜像下载量巨大,很多业务容器、嵌入式设备都在使用,风险扩散面很广。部分镜像内置账号拥有较高权限,一旦被入侵,容器、宿主机都可能失守。
漏洞已经公开 PoC,外网开放 22 端口的服务器,很容易被扫描工具批量探测。OpenSSH、Alpine 官方已经发布补丁版本,建议运维尽快自查。
✅ 快速处置建议:
- 梳理内网、公网所有 Alpine 容器、主机,确认是否使用 musl+OpenSSH 且关闭 PAM;
- 升级 OpenSSH 至 10.6p2 及以上版本,同步更新 musl 库;
- 尽量开启 PAM 认证,不要单纯依靠 shadow 字段锁定账号;
- 公网 SSH 禁止直接暴露,优先 VPN 接入,配置密钥登录,关闭密码认证;
- 增加 SSH 登录审计,监控异常超长密码登录行为。
一个埋藏 14 年的底层库 bug,搭配 SSH 安全逻辑,形成了这个离谱的绕过漏洞。这件事也提醒运维:安全短板往往藏在不同组件的交互缝隙里,不只是单个程序本身。













