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 后门漏洞。该工具可用于识别潜在的易受攻击系统,并采取相应的缓解措施。

--- 

这样修改后,内容更加简洁直观,适合中文读者快速理解。