Share
## https://sploitus.com/exploit?id=12686083-E46C-5E31-9300-CEFEB65D9E42
# cve-2024-3094-xz-backdoor
本仓库包含针对 XZ 后门漏洞(CVE-2024-3094)的工具。
## 关于 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一直被认为是一个可靠且经过严格审查的项目。攻击者通过多年的贡献积累了可信的开源开发者声誉,并且使用了高度混淆的代码,避开了代码审查。本文将详细介绍该事件的基本情况及其影响。
### 受CVE-2024-3094影响的用户
以下Linux发行版受此次攻击影响:
| 发行版 | 受影响分支 | 受影响的包 | 修复方法 | 备注 |
| ------------ | ---------------------- | ----------------------- | -------------------------- | ---------- |
| Fedora | 40, 41, Rawhide(开发中) | xz-5.6.0-*<br>xz-5.6.1-* | Fedora 40 – 更新到最新版本(5.4.x)<br>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兼容,未受影响 |
### 如何检测CVE-2024-3094
可以通过运行以下命令检查您的“xz”版本是否为受影响版本(5.6.0或5.6.1):
```bash
strings $(which xz) | grep '5\.6\.[01]'
```
如果输出中包含“5.6.1”,则表示您安装了受影响的版本。
### 如何修复CVE-2024-3094
请立即将XZ降级到较早版本(5.4.6为大多数发行版的最新未受影响版本)。降级后,重启计算机或重新启动OpenSSH服务器,以从内存中清除恶意代码:
```bash
sudo systemctl restart ssh
```
如果无法升级,您还可以通过以下方法利用后门的“杀开关”来防止其功能:
将以下字符串添加到`/etc/environment`文件中,然后重启SSH和Systemd:
```bash
yolAbejyiejuvnup=Evjtgvsh5okmkAvj
```
### JFrog OSS工具检测CVE-2024-3094
JFrog研究团队发布了一个开源检测工具,可以检查本地机器是否容易受到CVE-2024-3094的攻击,并检查当前是否安装了受影响版本的XZ。
### CVE-2024-3094的技术分析
此恶意负载的最终目标是向OpenSSH服务器(SSHD)注入代码,允许持有特定私钥的远程攻击者执行以下操作:
1. 通过SSH发送任意有效负载并在身份验证之前执行;
2. 绕过SSH的基于密码的认证(攻击者可以使用任意密码登录)。
此恶意后门的代码通过注入到OpenSSH服务器的`RSA_public_decrypt`函数中,利用攻击者控制的SSH客户端传递的RSA公钥值来进行操作。后门代码通过该RSA值的前16个字节计算命令编号,并执行不同的操作。
由于攻击使用了强加密算法(如Ed448),许多人认为此次攻击可能是国家级的网络攻击。
### 攻击时间线
攻击者用超过两年的时间,通过在多个开源项目中的贡献积累声誉,避开了检测,并最终成功地将恶意代码注入到XZ项目中。
### XZ以外的其他项目
尽管目前仅在XZ项目中发现了恶意代码,但攻击者在多个其他项目中也有贡献,部分代码存在潜在的安全隐患,仍在调查中。
## CVE-2024-3094 漏洞检测工具
本仓库中的 `cve-2024-3094-detector` 工具用于扫描文件和目录,检查是否存在 XZ 后门漏洞。该工具可用于识别潜在的易受攻击系统,并采取相应的缓解措施。
---
这样修改后,内容更加简洁直观,适合中文读者快速理解。