腾讯云公告 > 公告详情
扫码查看公告

【安全通告】OpenSSH "sshole" 密码认证绕过漏洞风险通告(CVE-2026-123158)

尊敬的腾讯云用户,您好!

腾讯云安全中心监测到,OpenSSH(运行于 musl libc 环境)被披露其存在密码认证绕过漏洞,漏洞编号CVE-2026-123158,代号 "sshole"。可导致未经身份验证的远程攻击者通过向本应禁止密码登录的账户(如 root、仅密钥登录的账户等)提交长度超过 256 个字符的任意密码,成功通过身份验证并获取系统访问权限等危害。

为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。

漏洞详情
OpenSSH 是一款基于 SSH 协议的连接工具。

在基于 musl libc 的 Linux 系统(如 Alpine、OpenWrt、Buildroot、Yocto 及大量 Docker 镜像)中,由于 musl 的 crypt() 函数在 2012 年的提交(b3c4cc12)中将密码哈希失败时的返回值从 NULL 改为了 "*",而随后加入的 SHA512 加密实现(提交 88bf5a8a)为防御拒绝服务攻击,将密码长度上限设为 256 字节,超过该长度的密码会触发 crypt() 返回 "*"。OpenSSH 在未使用 PAM 且处理密码认证时,若账户在 /etc/shadow 中的密码字段本身为 "*"(表示禁止密码登录),且系统中存在另一个拥有真实密码的账户以借用其 salt,此时攻击者提交长度在 257 至 1024 字节之间的任意密码,crypt() 会因长度超限返回 "*",恰好与 /etc/shadow 中的 "*" 字段匹配,从而绕过身份验证。在 Alpine 官方的 AWS 和 Azure 镜像中,默认的 alpine 用户即为此类账户且拥有免密 doas 权限,攻击者可借此直接获取 root 权限。

注:攻击者要成功利用该漏洞,必须满足以下所有条件:
(1) 目标 OpenSSH 运行在 musl libc 环境(如 Alpine、OpenWrt、Buildroot、Yocto 等);
(2) 目标未使用 PAM(如 Alpine 的 openssh-server 默认不使用 PAM);
(3) 目标系统中存在一个在 /etc/shadow 中密码字段仅为 "*" 的账户(如仅密钥登录的用户、LDAP 用户、Alpine 的 root 或默认 alpine 用户);
(4) 目标系统中同时存在另一个拥有真实密码哈希的账户(用于借用 salt)。
TencentOS、腾讯云公有云镜像 RHEL 7/8/9/10、Ubuntu 20.04/22.04/24.04/26.04、Debian 11/12/13、CentOS/Rocky/AlmaLinux 等主流镜像使用的是 glibc + PAM,默认未使用上述 Linux musl 认证组合,故均不受影响。
目前该漏洞的漏洞细节、POC已公开。

风险等级
高风险

漏洞风险
未经身份验证的远程攻击者利用该漏洞可绕过密码认证,以本应禁止密码登录的账户身份登录系统,在 Alpine 云镜像默认配置下可直接获取 root 权限,导致系统完全失陷等危害。

影响版本
OpenSSH < 10.6p2

安全版本
OpenSSH >= 10.6p2

修复建议
1. 官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版本 https://www.openssh.org/releasenotes.html#10.6p2 2. 缓解措施: 在 SSH 配置中关闭密码登录:在 /etc/ssh/sshd_config.d/00-no-passwords.conf 中添加 PasswordAuthentication no,并重启 sshd 服务: $ echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-no-passwords.conf $ rc-service sshd restart

【备注】:建议您在升级前做好数据备份工作,避免出现意外

漏洞参考


img

2026-11-06