关于liblzma/xz库被植入后门影响SSH事件紧急告知(CVE-2024-3094)

时间:2024-03-30 17:50:47来源:信息安全部作者:梦之想科技

XZ是类Unix操作系统上的一种无损数据压缩格式,通常与gzibzip2 等其他常见数据压缩格式进行比较。XZ Utils(以前被称为 LZMA Utils) 是一个命令行工具,包含XZ文件和liblzma的压缩和解压缩功能,liblzma是一种用于数据压缩的类似zlib的API,并且还支持旧版 .lzma 格式。

漏洞详情
在3月29日,梦之想监测到一位开发人员在Openwall安全邮件列表上发布了一篇帖子。该开发人员在调查SSH性能问题时,发现了涉及XZ包的供应链攻击。进一步追踪发现,SSH使用的上游liblzma库被植入了后门代码。这种恶意代码可能允许攻击者通过后门版本的SSH非授权地获取系统的访问权限。恶意代码修改了liblzma代码中的函数,而该代码是XZ Utils软件包的一部分。任何链接到XZ库的软件都可能使用这个被修改后的代码,从而允许拦截和修改与该库一起使用的数据。

影响范围
XZ Utils = 5.6.0 - 5.6.1
注:XZ的Git发行版中暂未发现恶意代码,仅存在于完整的下载包中。
目前已知受影响的Linux发行版:
Fedora Rawhide(开发版本)
Fedora 41
MACOS HomeBrew x64
openSUSE Tumbleweed 及 MicroOS(3月7日至3月28日期间发行)
Kali Linux(3月26日至3月28日期间发行的xz-utils 5.6.0-0.2)
Debian(XZ测试版本5.5.1alpha-0.1 至 5.6.1-1)

排查方法
1、通过执行以下命令判断使用的xz是否为受影响的版本
    检查命令:xz --version
2、使用Openwall上发布的脚本检查系统是否被感染后门:

#! /bin/bash

set -eu

# find path to liblzma used by sshd
path="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')"

# does it even exist?
if [ "$path" == "" ]
then
  echo probably not vulnerable
  exit
fi

# check for function signature
if hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410
then
  echo probably vulnerable
else
  echo probably not vulnerable
fi


修复建议
目前官方暂未针对此后门漏洞发布公告和版本升级,相关用户可将xz-utils降级至5.6.0之前版本或在应用中替换为7zip等组件。

参考链接
https://www.openwall.com/lists/oss-security/2024/03/29/4
https://access.redhat.com/security/cve/cve-2024-3094