该漏洞是由于 OpenSSH 服务器 (sshd) 中的信号处理程序竞争问题,未经身份验证的攻击者可以利用此漏洞在 Linux 系统上以 root 身份执行任意代码。

影响版本:8.5p1 <= OpenSSH < 9.8p1

在我们的实验中,平均需要约 10,000 次尝试才能赢得这种竞争条件,因此每 120 秒 (LoginGraceTime) 接受 100 个连接 (MaxStartups) 需要约 3-4 小时。最终,平均需要约 6-8 小时才能获得远程 root shell,因为我们只有一半的时间可以正确猜出 glibc 的地址(由于 ASLR)。

升级OpenSSH9.8p1方法(适用于Debian12,CentOS未知,应该是通用)

cd /usr
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz --no-check-certificate
tar zxf openssh-9.8p1.tar.gz
cd openssh-9.8p1
apt install libssl-dev libpam0g-dev build-essential
./configure --prefix=/usr --with-privsep-path=/var/empty/sshd/ \
--sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl/ \
--with-default-path=/usr/local/bin:/bin:/usr/bin \
--with-superuser-path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin \
--with-pam --disable-strip --with-md5-passwords
make
make install
systemctl daemon-reload
systemctl restart sshd

然后检查下SSH版本

root@debian-chinatelecom://# ssh -V
OpenSSH_9.8p1, OpenSSL 3.0.13 30 Jan 2024