本文最后更新于 2024-07-05,文章内容可能已经过时。

OpenEuler 22.03 LTS SP3 CVE-2024-6387 OpenSSH 漏洞修复指南

一、漏洞概括

漏洞名称 OpenSSH Server远程代码执行漏洞
漏洞编号 CVE-2024-6387
公开时间 2024-7-1 CVSS 3.1分数 8.1
威胁类型 代码执行 漏洞等级 暂无
技术细节状态 已公开 在野利用状态 不明确
PoC状态 x86已公开 EXP状态 未公开

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设备上则可能需要约一周左右。

二、影响范围

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

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

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

三、安全措施

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

  • 通过软件源更新方法:

    • Debian/Ubuntu等:apt update && apt install openssh-server
    • OpenEuler/CentOS等:yum update openssh

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

不同Linux发行版可能会自行维护OpenSSH安全补丁,请前往发行版的openssh-server软件包信息页面,确认漏洞修复情况。例如在openeuler22.03 LTSSP3 中,已发布openssh-8.8p1-31版本完成对本漏洞的修复。

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

四、OpenEuler 22.03 LTS SP3 修复CVE-2024-6387

image-20240703100348342

前置条件,准备官方update源

这里我注释了metalink,因为有些镜像仓库还没去同步openeuler最新的update软件包,直接使用openeuler官方的源

[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/update/$basearch/
#metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler

[update-source]
name=update-source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/update/source/
#metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/update&arch=source
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/source/RPM-GPG-KEY-openEuler

yum update 更新

查看当前OpenSSH版本

[root@localhost yum.repos.d]# ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1wa  16 Nov 2023

#查看当前版本
[root@localhost yum.repos.d]# rpm -qa openssh
openssh-8.8p1-26.oe2203sp3.x86_64

使用yum update 更新OpenSSH软件包

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

[root@localhost ~]# yum update openssh*

image-20240703100824772

升级后重启sshd服务

[root@localhost ~]# systemctl restart sshd

#查看升级后的版本
[root@localhost ~]# rpm -qa openssh
openssh-8.8p1-31.oe2203sp3.x86_64

五、参考

  • https://inc.xmu.edu.cn/info/1031/6641.htm
  • https://www.openeuler.org/zh/security/cve/detail/?cveId=CVE-2024-6387&packageName=openssh