CVE-2024-3094
约 2 分钟阅读
- XZ Utils / liblzma 后门 - 恶意代码被植入上游发布包及构建过程的供应链事件
- 受污染版本:XZ Utils
5.6.0、5.6.1的官方发布 tarball - 公开披露:2024-03-29,发现者 Andres Freund
- 严重性:CVSS 3.1
10.0 Critical(Red Hat CNA)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- CWE:CWE-506(嵌入恶意代码)
成因与影响
- 发布 tarball 中的构建脚本提取伪装成测试数据的恶意内容,并将其注入生成的
liblzma - Git 仓库包含用于承载载荷的测试文件,但关键构建触发代码仅存在于发布 tarball,直接由 Git 生成的源码归档与发布包并不等价
- 最初披露的注入条件针对 x86-64 Linux、glibc、特定 GCC/GNU ld 及 Debian/RPM 打包环境
- 部分发行版的 sshd 因 systemd 集成而通过
libsystemd间接加载liblzma- 受污染库可干预 SSH 认证相关流程,在满足后门触发条件时导致服务被远程控制
- OpenSSH 本身不直接依赖 liblzma;不能把安装了任意 xz 版本等同于存在这条 SSH 攻击路径
- 这是特定版本及构建产物中的后门,不是通常意义上的
.xz文件解压漏洞
修复与处置
- 按发行版公告替换受污染的 xz/liblzma 软件包,使用可信来源提供的未受影响或已清理版本
- 上游在 2024-05-29 发布清理后的
5.6.2;这是事件后的清理版本,不代表当前推荐的最新版本 - 同时检查
liblzma包、实际加载库的服务、镜像和构建产物;只检查xz --version不能确认服务加载了哪一份库 - 更换库后重启依赖该库的服务或系统,避免进程继续使用原先加载的代码
- 若确认受污染库曾被暴露的服务加载,应保留调查证据、检查服务完整性和异常认证,按泄露范围轮换凭据;替换库不能撤销已经发生的入侵
PoC
amlweems/xzbot包含后门协议分析、实验用密钥替换脚本、演示客户端和蜜罐补丁- 演示需要使实验库中的 ED448 公钥与演示端私钥匹配;仓库默认测试密钥不等于攻击者原始私钥
- 实验观察流程:受污染库进入测试 sshd → 后门接受匹配密钥签名的特定输入 → 出现预期的命令执行副作用
- 仓库的蜜罐只记录符合特征的连接;检测命中与真实后门成功执行需要分别判断
xz --version只能确认版本信息,不能代替后门加载和触发条件验证
调侃
免费运维服务
专业黑客团队,再也不怕忘记密码
参考
- XZ Utils 官方事件说明
- XZ Utils 官方安全信息
- Andres Freund 原始披露链接www.openwall.com/lists/oss-security/2024/03/29/4XZ Utils / liblzma 后门 - 恶意代码被植入上游发布包及构建过程的供应链事件 · 受污染版本:XZ Utils 、 的官方发布 tarball · 公开披露:2024-03-29,发现者 Andres Freund · 严重性:CVSS 3.1 (Red Hat CNA)笔记:CVE-2024-3094
- CVE 官方记录
- amlweems/xzbotGitHubamlweems/xzbot
- 后门分析、蜜罐与实验环境演示;README 区分了密钥替换、后门格式与触发过程
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub1 条
- amlweems/xzbotgithub.com/amlweems/xzbot
其他外链4 条
- tukaani.org/xztukaani.org/xz
- tukaani.org/xz-backdoortukaani.org/xz-backdoor
- www.cve.org/CVERecord?id=CVE-2024-3094www.cve.org/CVERecord?id=CVE-2024-3094
- www.openwall.com/lists/oss-security/2024/03/29/4www.openwall.com/lists/oss-security/2024/03/29/4