OpenSSH远程代码执行漏洞(CVE-2024-6387)
漏洞详情
OpenSSH 是 Secure Shell (SSH)协议的免费实现,主要用于安全地远程登录和执行命令,提供了加密的通信通道,以防止敏感信息在网络上被窃听或篡改。
根据官方的描述来看,旧版本的 OpenSSH 的信号处理程序中存在条件竞争漏洞,未经身份验证的远程攻击者可利用此漏洞在基于 glibc 的 Linux系统上以 root 身份执行任意代码。
当前该漏洞的细节已经公布,可查看具体信息:
https://www.secrss.com/articles/67636
https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server
https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt
关于漏洞的一些信息
影响到的 OpenSSH 版本信息
OpenSSH < 4.4p1(为更新历史漏洞CVE-2006-5051、CVE-2008-4109)
8.5p1 <= OpenSSH < 9.8p1
包括系统:CentOS 9,Ubuntu22.04、24.04,Debian 12
未受影响的 OpenSSH 版本信息(安全版本)
4.4p1 <= OpenSSH < 8.5p1
OpenSSH >= 9.8p1
包括系统:CentOS 6、7、8
修复方法
官方已经发布了漏洞补丁及修复版本,建议升级到当前最新版本(2024年07月14日)9.8p1,具体操作方法如下:
适用于 Debian 系系统安装 OpenSSH 8.9p1 版本:
(1)源码修复:
sudo apt-get update
sudo apt-get install build-essential zliblg-dev libssl-dev libpam0g-dev libselinux1-dev
wget https://github.com/openssh/openssh-portable/archive/refs/tags/V_9_8_P1.tar.gz
tar -zxf V_9_8_P1
./configure
sudo make && sudo make install
sudo mv /usr/sbin/sshd /usr/sbin/sshd.bak
sudo ln -s /usr/local/sbin/sshd /usr/sbin/sshd
sudo systemctl restart sshd
(2)软件包修复
sudo apt-get update
sudo apt-get install openssh-client
修复确认:
sshd -V 或 dpkg-query -W|grep openssh,其中版本信息如下则为安全(如图所示为 Debian 12):
暂时无法修复的缓解方法:
如果 sshd 无法更新或者重新编译,可通过设置配置文件中的 LoginGraceTime 为 0 进行缓解,但是此方案会耗尽所有的 MaxStartups 连接,从而导致 sshd 容易遭受拒绝服务攻击。