OpenSSH远程代码执行漏洞CVE-2024-6387深度解析与修复指南
漏洞概述:条件竞争如何引发RCE?
OpenSSH是安全网络通信的核心工具,提供远程登录、远程命令执行和文件传输等功能。2024年7月1日,OpenSSH官方发布安全通告,披露了编号为CVE-2024-6387的Server远程代码执行漏洞。
该漏洞的成因是条件竞争(race condition)。攻击者需要经过多次尝试,并成功绕过ASLR等系统保护机制,才能稳定利用,实际利用难度较高。但一旦成功,攻击者可在目标系统上执行任意代码,风险严重。
影响版本:你的系统是否在风险范围内?
漏洞影响版本范围为:8.5p1 <= OpenSSH < 9.8p1。
对应的主流发行版包括:
- Debian 12
- RHEL / AlmaLinux / RockyLinux / CentOS Stream 9
- Ubuntu 22.04 / 23.10 / 24.04
如何查看当前OpenSSH版本?
根据包管理器不同,查看方式略有区别:
- 使用dnf包管理器(RHEL系):运行
rpm -q openssh - 使用apt包管理器(Debian/Ubuntu):运行
dpkg -l | grep openssh
确认版本后,即可判断是否处于受影响区间。
修复方案:升级到安全版本
目前大部分系统官方源已发布修复包。直接执行系统更新命令即可完成升级:
- apt系统:
apt update && apt upgrade -y - dnf系统:
dnf makecache && dnf update -y
部分发行版的修复版本号参考:
| 发行版 | 修复版本 |
|---|---|
| Ubuntu 22.04 | 8.9p1-3ubuntu0.10 |
| Ubuntu 23.10 | 9.3p1-1ubuntu3.6 |
| Ubuntu 24.04 | 9.6p1-3ubuntu13.3 |
| Debian 12 | 9.2p1-2+deb12u3 |
| AlmaLinux 9 | 8.7p1-38.el9.alma.2 |
| RockyLinux 9 | 8.7p1-38.el9_4.security.0.5 |
升级后可使用前述命令再次确认版本,确保已高于安全阈值。
无法升级?临时缓解措施与风险提示
如果因业务原因暂时无法升级OpenSSH,可以采取以下缓解措施:
在 /etc/ssh/sshd_config 中设置 LoginGraceTime 0。
这样做可以规避CVE-2024-6387的利用条件,但也会带来副作用:sshd会更容易受到拒绝服务攻击,攻击者可耗尽所有MaxStartups连接,造成服务不可用。因此,该配置只能作为临时缓解,后续仍应尽快完成版本升级。
升级后版本仍非修复版?请检查软件源
有些系统执行升级后,OpenSSH版本仍未达到安全版本,常见原因是软件源中缺少安全(security)更新源。此时需要手动更新软件源配置文件,启用安全源,再重新执行更新命令,才能获取到修复补丁。
总之,CVE-2024-6387是近期值得关注的高危漏洞,虽然利用难度较高,但影响范围广泛。及时升级、合理配置临时缓解,是保障服务器安全的关键步骤。