本仓库包含针对 XZ 后门漏洞(CVE-2024-3094)的工具。
CVE-2024-3094,亦称 XZ 后门,是在 XZ 数据压缩库中发现的一个严重漏洞。
2024年3月29日报道,广泛用于Linux发行版中的XZ Utils(一个重要的软件包)被发现包含恶意代码,允许未经授权的远程SSH访问。幸运的是,开源社区迅速发现了该恶意代码,并且它只影响了XZ Utils的两个最新版本——5.6.0和5.6.1,这两个版本是在过去一个月内发布的。大部分Linux发行版的稳定版本未受影响。
这段复杂的恶意代码隐藏在受影响版本的XZ Utils中,并与OpenSSH服务器(SSHD)在同一进程中运行,修改了OpenSSH的解密例程,允许特定的远程攻击者(持有特定私钥的攻击者)在身份验证步骤之前通过SSH发送任意的有效负载,从而完全控制受害者的计算机。
这一供应链攻击震惊了开源社区,因为XZ Utils一直被认为是一个可靠且经过严格审查的项目。攻击者通过多年的贡献积累了可信的开源开发者声誉,并且使用了高度混淆的代码,避开了代码审查。本文将详细介绍该事件的基本情况及其影响。
以下Linux发行版受此次攻击影响:
发行版 | 受影响分支 | 受影响的包 | 修复方法 | 备注 |
---|---|---|---|---|
Fedora | 40, 41, Rawhide(开发中) | xz-5.6.0- xz-5.6.1- |
Fedora 40 – 更新到最新版本(5.4.x) Fedora 41 & Rawhide – 立即停止使用 |
|
Debian | testing, unstable (sid), experimental | xz-utils 5.5.1alpha-0.1 到 5.6.1-1 | 更新到最新版本(5.6.1+really5.4.5-1) | 无稳定分支受影响 |
Alpine | Edge(开发中) | xz 5.6.1-r0, 5.6.1-r1 | 更新到最新版本(5.6.1-r2) | 无稳定分支受影响 |
Kali | N/A | xz-utils 5.6.0-0.2 | 更新到最新版本(5.6.1+really5.4.5-1) | |
OpenSUSE | Tumbleweed | xz-5.6.0, xz-5.6.1 | 更新到最新版本(5.6.1.revertto5.4) | |
Arch Linux | N/A | xz 5.6.0-1 | 更新到最新版本(5.6.1-2) |
以下发行版未受到影响:
发行版 | 修复方法 | 备注 |
---|---|---|
Red Hat Enterprise Linux | 无影响 | 无版本受影响 |
Ubuntu | 无影响 | 受影响版本已从预发布中移除 |
Amazon Linux | 无影响 | 无影响 |
Wolfi | 无影响 | 使用的OpenSSH未链接到liblzma,因此不受影响 |
Gentoo | 无影响 | OpenSSH未修复为与systemd-notify兼容,未受影响 |
可以通过运行以下命令检查您的“xz”版本是否为受影响版本(5.6.0或5.6.1):
strings $(which xz) | grep '5\.6\.[01]'
如果输出中包含“5.6.1”,则表示您安装了受影响的版本。
请立即将XZ降级到较早版本(5.4.6为大多数发行版的最新未受影响版本)。降级后,重启计算机或重新启动OpenSSH服务器,以从内存中清除恶意代码:
sudo systemctl restart ssh
如果无法升级,您还可以通过以下方法利用后门的“杀开关”来防止其功能:
将以下字符串添加到/etc/environment
文件中,然后重启SSH和Systemd:
yolAbejyiejuvnup=Evjtgvsh5okmkAvj
JFrog研究团队发布了一个开源检测工具,可以检查本地机器是否容易受到CVE-2024-3094的攻击,并检查当前是否安装了受影响版本的XZ。
此恶意负载的最终目标是向OpenSSH服务器(SSHD)注入代码,允许持有特定私钥的远程攻击者执行以下操作:
- 通过SSH发送任意有效负载并在身份验证之前执行;
- 绕过SSH的基于密码的认证(攻击者可以使用任意密码登录)。
此恶意后门的代码通过注入到OpenSSH服务器的RSA_public_decrypt
函数中,利用攻击者控制的SSH客户端传递的RSA公钥值来进行操作。后门代码通过该RSA值的前16个字节计算命令编号,并执行不同的操作。
由于攻击使用了强加密算法(如Ed448),许多人认为此次攻击可能是国家级的网络攻击。
攻击者用超过两年的时间,通过在多个开源项目中的贡献积累声誉,避开了检测,并最终成功地将恶意代码注入到XZ项目中。
尽管目前仅在XZ项目中发现了恶意代码,但攻击者在多个其他项目中也有贡献,部分代码存在潜在的安全隐患,仍在调查中。
本仓库中的 cve-2024-3094-detector
工具用于扫描文件和目录,检查是否存在 XZ 后门漏洞。该工具可用于识别潜在的易受攻击系统,并采取相应的缓解措施。
这样修改后,内容更加简洁直观,适合中文读者快速理解。