OpenSSH 远程代码执行漏洞(CVE-2024-6387)

漏洞详情

OpenSSH 是使用 SSH 协议进行远程登录的首要连接工具。 它加密所有流量以消除窃听、连接劫持、 和其他攻击。 此外,OpenSSH 还提供了一整套安全隧道功能, 多种身份验证方法和复杂的配置选项。

据官方描述,在 OpenSSH 的服务器 (sshd) 中发现了一个信号处理程序争用条件,其中客户端不会在 LoginGraceTime 秒内进行身份验证(默认为 120 秒,在旧 OpenSSH 版本中为 600 秒),然后异步调用 sshd 的 SIGALRM 处理程序。但是,此信号处理程序调用各种非异步信号安全的函数,例如 syslog()。

风险等级

高风险

影响版本

OpenSSH < 4.4p1(未更新历史漏洞 CVE-2006-5051、CVE-2008-4109 的补丁)

8.5p1 <= OpenSSH < 9.8p1

CentOS 9(暂未发布补丁)

Ubuntu 22.04、24.04

Debian 12

修复建议

1.官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,建议升级至最新版本 9.8p1,具体修复步骤如下:

(1) 适用于 Debian(Debian、Ubuntu、Mint…)上安装 OpenSSH 9.8p1 版本:

方案1:源码修复:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sudo apt-get update

sudo apt-get install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev

wget https://github.com/openssh/openssh-portable/archive/refs/tags/V_9_8_P1.tar.gz

tar -xzf V_9_8_P1.tar.gz

cd openssh-portable-V_9_8_P1

./configure

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:软件包修复:

1
2
3
sudo apt-get update

sudo apt-get install openssh-client

(2) 修复确认:

1
sshd -V
1
pkg-query -W|grep openssh

验证版本属于如下版本则无安全风险:

1
2
3
4
5
Ubuntu22.04 LTS:1:8.9p1-3ubuntu0.10

Ubuntu24.04 LTS:1:9.6p1-3ubuntu13.3

Debian 12: 1:9.2p1-2+deb12u2

2.缓解措施:

如果 sshd 无法更新或重新编译,可通过设置配置文件中的 LoginGraceTime 为 0 进行缓解,但是该方案会耗尽所有的 MaxStartups 连接,从而使 sshd 容易遭受拒绝服务攻击。

参考链接

【安全通告】OpenSSH 远程代码执行漏洞风险通告(CVE-2024-6387) (tencent.com)

regreSSHion:OpenSSH服务器中存在远程未经身份验证的代码执行漏洞 |Qualys 安全博客