Skip to content

ethnh/cve-2024-3094-xz-backdoor-exploit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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-
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兼容,未受影响

如何检测CVE-2024-3094

可以通过运行以下命令检查您的“xz”版本是否为受影响版本(5.6.0或5.6.1):

strings $(which xz) | grep '5\.6\.[01]'

如果输出中包含“5.6.1”,则表示您安装了受影响的版本。

如何修复CVE-2024-3094

请立即将XZ降级到较早版本(5.4.6为大多数发行版的最新未受影响版本)。降级后,重启计算机或重新启动OpenSSH服务器,以从内存中清除恶意代码:

sudo systemctl restart ssh

如果无法升级,您还可以通过以下方法利用后门的“杀开关”来防止其功能:

将以下字符串添加到/etc/environment文件中,然后重启SSH和Systemd:

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


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

About

CVE-2024-3094 (XZ Backdoor) Tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%