Centos7&银河麒麟v10升级到openssh-10.6p2版本(修复严重密码认证绕过漏洞)
漏洞说明
OpenSSH 10.6p2 修复了一个严重的密码认证绕过漏洞:攻击者无需密码即可获取访问权限。
官方发布说明(Portable OpenSSH 10.6p2,2026-11-05)原文:
* sshd(8): avoid password authentication bypass that is exploitable through sshd(8) that affects some Linux systems when built and run with PAM support disabled. We consider the root cause of this bug to be outside sshd, but it is exploitable via sshd and can be avoided there. This bug was reported by Özgün Kültekin of Wakefield (wakefield.co)
影响范围
仅影响同时满足以下两个条件的 Linux 系统:
- 使用 musl libc
- 未启用 PAM
典型受影响发行版:Alpine Linux、Void Linux 等。
不受影响:
- 非 Linux 系统(OpenBSD、FreeBSD 等)
- 使用 glibc 的系统(Debian、Ubuntu、RHEL/CentOS、银河麒麟等)
- 启用 PAM 的系统(即使使用 musl libc)
也就是说,本文提供的 CentOS 7 / 银河麒麟 V10 版本(glibc + 启用 PAM)本身不在受影响范围内;但如果你的环境里有 Alpine 这类 musl 系统,建议尽快升级。
其他修复
- sshd(8) / ssh(1):把后量子混合签名算法 ssh-mldsa44-ed25519 加入允许的 CA 签名算法
- ssh(1) / sshd(8):修复启用 ChannelTimeout 时可能出现的小于一秒的 CPU 空转
- sshd(8):seccomp 沙箱允许 restart_syscall(2)(bz4036)
- 若干可移植性修复:SKIP_PRIVDROP 平台编译、阿塞拜疆语 locale 检测、无 openat(2) 平台上 agent socket 的创建、读取口令时收到 SIGINT/SIGQUIT 的异常行为
发行背景
银河麒麟 V10 Server 在技术血统上源自 CentOS/RHEL 体系,两者共享 RPM 包格式、glibc 向后兼容机制、Linux 内核 ABI 稳定性、GCC 工具链和 FHS 目录规范,这五大支柱共同保证了 CentOS 7 编译的 RPM 包可以在银河麒麟 V10 上正常安装和运行。
但是反之不亦然,银河麒麟 V10 更像 CentOS 8,glibc 采用了 2.28,而 CentOS 7 采用 glibc 2.17,所以不能向下兼容。博客后续发布的版本,均基于 CentOS 7 进行发布,包括但不限于 Nginx / Redis 等软件包。
安装手册参考此文章:https://cikeblog.com/upgrade-openssh-to-openssh-10-0p1-under-centos7.html
本次版本由 10.6p1 更新到 OpenSSH 10.6p2,x86_64 与 aarch64 双架构同步发布。
编译环境
x86_64 编译宿主机:
[root@72f133f64943 x86_64]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@72f133f64943 x86_64]# uname -m x86_64 [root@72f133f64943 x86_64]# gcc --version | head -1 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
aarch64 编译宿主机(CentOS 7 AltArch):
[root@3a7772b4241d aarch64]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (AltArch) [root@3a7772b4241d aarch64]# uname -m aarch64 [root@3a7772b4241d aarch64]# gcc --version | head -1 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
两个构建环境的 glibc 均为 2.17,产物可同时用于 CentOS 7 与银河麒麟 V10 SP1。
编译程序来源
https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.6p2.tar.gz https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
测试情况
编译后的程序在 CentOS 7 与银河麒麟 V10 SP1 上安装、登录测试通过。两个架构的包依赖最高只到 GLIBC_2.17,且未动态依赖 OpenSSL 库(OpenSSL 已静态链接进二进制),因此不受目标机 OpenSSL 版本影响。
安装命令
rpm -ivh --force --nodeps --replacepkgs --replacefiles openssh-*.rpm
升级前请先备份 sshd_config,并确认密钥登录可用,避免升级过程中连接中断后无法登录。
程序下载
arm64(aarch64):https://download.cikeblog.com/openssh/openssh-10.6p2-1.el7.aarch64.tgz
x86_64:https://download.cikeblog.com/openssh/openssh-10.6p2-1.el7.x86_64.tgz
每个压缩包内包含 4 个 RPM:openssh、openssh-clients、openssh-server、openssh-askpass。