OpenSSH 是一套基于 Secure Shell(SSH)协议的网络实用程序,广泛用于安全远程登录、管理远程服务器、以及通过 scp 或 sftp 进行远程文件传输和备份。自 1995 年问世以来,首次出现了未经验证的远程代码执行(RCE)漏洞,允许攻击者在无需用户交互的情况下提升至 root 最高权限并执行任意代码。
2024 年 5 月,网络安全公司 Qualys 首次发现并报告了该漏洞,编号为 CVE-2024-6387。该漏洞存在于 OpenSSH 服务器(sshd)中,由于信号处理竞争条件存在缺陷,允许未经认证的远程攻击者以 root 用户身份执行任意代码。
2024 年 7 月,网上公开披露了这一 OpenSSH 远程代码执行漏洞(CVE-2024-6387)。尽管该漏洞利用难度较高,但其潜在危害极大,因此建议所有使用受影响版本的企业尽快修复该漏洞。
1.漏洞概述
未经身份验证的攻击者可以利用此漏洞在Linux系统上以root身份执行任意代码。
2.漏洞成因
CVE-2024-6387 是 OpenSSH 服务器中的一个严重漏洞,影响基于 glibc 的 Linux 系统。该漏洞存在于默认配置下的 OpenSSH Server (sshd) 中,是由于信号处理程序的竞争条件引起的。
在默认情况下,如果客户端未在 LoginGraceTime 秒内进行身份验证(默认情况下为 120 秒,旧版 OpenSSH 中为 600 秒),sshd 的 SIGALRM 处理程序将被异步调用。然而,该信号处理程序会调用各种非异步信号安全(async-signal-safe)的函数(例如 syslog())。攻击者可以利用这一漏洞,在基于 glibc 的 Linux 系统上以 root 身份实现未经身份验证的远程代码执行。
3.影响版本
8.5p1 <= OpenSSH < 9.8p1
OpenBSD系统不受该漏洞影响
4.缓解措施
可以在配置文件中将 LoginGraceTime 设置为 0(永不超时)。这样虽然会使 sshd 暴露于拒绝服务攻击(占满所有连接),但可以避免远程代码执行风险。
启用 fail2ban 等防护机制,封禁发生过多次失败登录 ssh 尝试的来源 IP。
5.升级修复方案
将 OpenSSH 更新到最新版本 9.8 或者各发行版本的修复版本。
参考文档:
https://www.openssh.com/releasenotes.html
https://www.secrss.com/articles/67636?app=1
https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt