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

管理员
管理员 2024-11-19

一、漏洞概述

漏洞名称:OpenSSH Server远程代码执行漏洞

漏洞编号:CVE-2024-6387

公开时间:2024-7-1

CVSS 3.1分数:9.8

威胁类型:代码执行

漏洞等级: 暂无

技术细节状态:已公开

在野利用状态:不明确

PoC状态:x86已公开

OpenSSH是SSH(Secure Shell)协议的开源实现,它支持在两个主机之间提供安全的加密通信,广泛用于Linux等系统,通常用于安全远程登录、远程文件传输和其它网络服务。

2024年7月1日,OpenSSH Server中存在的一个远程代码执行漏洞(CVE-2024-6387,又被称为regreSSHion)细节被公开,该漏洞影响基于glibc的Linux系统上的OpenSSH Server (sshd)。

默认配置下的OpenSSH Server (sshd)中存在信号处理程序竞争条件漏洞,如果客户端未在LoginGraceTime内(默认情况下为120秒,旧版OpenSSH中为600秒)进行身份验证,则sshd的SIGALRM处理程序将被异步调用,但该信号处理程序会调用非异步信号安全的函数,最终造成Double-Free内存管理问题。威胁者可利用该漏洞在基于glibc的Linux系统上以root身份实现未经身份验证的远程代码执行。根据已公开技术细节中的描述,在开启ASLR的i386设备上,利用该漏洞大约需要6-8小时获取root shell,在开启ASLR的amd64设备上则可能需要约一周左右。


二、影响范围

OpenSSH < 4.4p1(不含已修复CVE-2006-5051和CVE-2008-4109的实例)

8.5p1 <= OpenSSH < 9.8p1

注:OpenBSD系统不受该漏洞影响。

用户可执行sshd -V确认OpenSSH版本,目前该漏洞技术细节已在互联网上公开,鉴于影响范围较大,建议用户尽快做好自查及防护。


三、安全措施

目前OpenSSH上游已发布版本更新,受影响用户可通过软件源升级到最新版本(OpenSSH 9.8p1)或编译安装最新版本。

通过软件源更新方法:

Debian/Ubuntu等:apt update && apt install openssh-server

RHEL/CentOS等:yum update openssh

更新后请使用systemctl restart sshd 等命令重启sshd服务。

不同Linux发行版可能会自行维护OpenSSH安全补丁,请前往发行版的openssh-server软件包信息页面,确认漏洞修复情况。例如在Ubuntu 22.04 LTS中,已发布openssh 1:8.9p1-3ubuntu0.10版本完成对本漏洞的修复。

如确有困难无法升级版本的,可采用缓解措施。在sshd配置文件中将LoginGraceTime设置为0,并重启sshd服务。请注意,使用该配置会导致MaxStartups连接耗尽,从而使sshd易受拒绝服务攻击,但可以缓解本漏洞的风险。也可使用iptables等防火墙最小化控制SSH访问范围。


四、参考链接

https://www.qualys.com/regresshion-cve-2024-6387/

https://github.com/7etsuo/cve-2024-6387-poc

https://mp.weixin.qq.com/s/tTOkSN-RHl4UGp38iDWSKw

https://mp.weixin.qq.com/s/N0ku0c1PaGYuGQQAR2950g

https://access.redhat.com/security/cve/CVE-2024-6387

https://ubuntu.com/security/notices/USN-6859-1

https://security-tracker.debian.org/tracker/CVE-2024-6387


五、漏洞复现:

1、漏洞利用poc

https://github.com/zgzhang/cve-2024-6387-poc

https://github.com/acrono/cve-2024-6387-poc

https://github.com/lflare/cve-2024-6387-poc

2、漏洞验证

将poc编译成可执行文件

gcc -o exploit 7etsuo-regreSSHion.c

3、对目标进行验证

./exploit ip 端口

./exploit 192.168.24.139 22

返回结果

Attempting exploitation with glibc base: 0xb7200000

Attempt 0 of 20000

Received SSH version: SSH-2.0-OpenSSH_8.2p1 Debian-4

Received KEX_INIT (1024 bytes)

send_packet: Connection reset by peer



六、升级修复过程

下载更新文件, 如下链接,下载后 修改名称去除 ".png" 

https://dev.dzmvc.com/data/update/openssh-9.8p1.tar.gz.png

https://dev.dzmvc.com/data/update/openssl-1.1.1w.tar.gz.png

#升级openssl-1.1.1w
tar xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w/
./config --prefix=/usr/local/openssl
make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
unlink /usr/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo '/usr/local/openssl/lib' >> /etc/ld.so.conf
ldconfig -v
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
rm /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
rm /usr/lib64/libcrypto.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
unlink  /usr/lib64/libssl.so.1.1
unlink  /usr/lib64/libcrypto.so.1.1
openssl version

#升级openssh-9.8p1
cd /home/openssh/
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
cp /etc/pam.d/sshd /etc/pam.d/sshd.backup
rpm -e --nodeps `rpm -qa | grep openssh`
tar -zxvf openssh-9.8p1.tar.gz
cd openssh-9.8p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --without-hardening
make install
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
mv /etc/pam.d/sshd.backup /etc/pam.d/sshd
mv /etc/ssh/sshd_config /home/openssh/
mv /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
chkconfig --add sshd
chkconfig sshd on
systemctl restart sshd


回帖
  • 2025-7-19
    回复
  • 2025-5-23
    回复
  • 2025-2-17
    回复

微信二维码

微信二维码

微信扫码添加微信好友