漏洞预警 | liblzma/xz被植入后门

admin 2024年4月2日10:28:57评论15 views字数 2447阅读8分9秒阅读模式

XZ-Utils是Linux/Unix系统中用于处理.xz和.lzma文件的命令行压缩工具,集成了liblzma等组件。2024年3月30日,启明星辰VSRC监测到国外安全研究员发布消息,在xz-utils软件包5.6.0到5.6.1版本中,存在供应链攻击及植入后门风险,漏洞编号为CVE-2024-3094,漏洞的CVSS评分为10.0。3月29日,微软PostgreSQL开发人员Andres Freund在调查SSH性能问题时,在开源安全邮件列表中发帖称,他在xz软件包中发现了一个涉及混淆恶意代码的供应链攻击。恶意代码修改了liblzma代码中的函数,该代码是 XZ Utils软件包的一部分。由于SSH底层依赖了liblzma等组件,攻击者可能利用这一漏洞破坏sshd认证,并远程获取对整个系统的未授权访问。

事件概述

xz是一种几乎存在于所有Linux发行版中的通用数据压缩格式。从5.6.0版本开始,在xz的上游tarball包中被发现了恶意代码,通过一系列复杂的混淆手段,liblzma的构建过程从伪装成测试文件的源代码中提取出预构建的目标文件,然后用它来修改liblzma代码中的特定函数。这导致生成了一个被修改过的liblzma库,任何链接此库的软件都可能使用它,从而拦截并修改与此库的数据交互。

3月29日,微软PostgreSQL开发人员Andres Freund在调试SSH性能问题时,在开源安全邮件列表中发帖称,他在XZ软件包中发现了一个涉及混淆恶意代码的供应链攻击。据Freund和RedHat称,Git版XZ中没有恶意代码,只有完整下载包中存在。但是这个代码的提交人两年前就加入了项目维护,暂时不能确定之前的版本有没有问题。

xz 5.6.0和5.6.1版本库中存在的恶意注入只包含在tarball下载包中。Git发行版中缺少触发恶意代码构建的M4宏。注入期间构建时使用的第二阶段工件存在于Git存储库中,以防存在恶意的M4宏。如果不合并到构建中,第二阶段文件是无害的。在发现者的演示中,发现它干扰了OpenSSH守护进程。虽然OpenSSH没有直接链接到liblzma库,但它以一种使其暴露于恶意软件的方式与systemd通信,而systemd链接到了liblzma。恶意构建会通过systemd干扰sshd的认证。在一定的情况下,这种干扰有可能使恶意行为体破坏ssh认证,并远程未经授权访问整个系统。

截至日前(3月30日),暂未观察到利用此后门代码的行为。

漏洞预警 | liblzma/xz被植入后门

影响范围

xz 和 liblzma 5.6.0~5.6.1 版本,可能包括的发行版 / 包管理系统有:

• Fedora 41 / Fedora Rawhide

• Debian Sid

• Alpine Edge

• x64 架构的 homebrew

• 滚动更新的发行版,包括 Arch Linux / OpenSUSE Tumbleweed

如果你的系统使用 systemd 启动 OpenSSH 服务,你的 SSH 认证过程可能被攻击。非x86-64 架构的系统不受影响。

if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then

如果你的系统使用 systemd 启动 OpenSSH 服务,你的 SSH 认证过程可能被攻击。非x86-64 架构的系统不受影响。

你可以在命令行输入xz --version来检查 xz 版本,如果输出为5.6.0或 5.6.1 ,说明你的xz-utils已被植入后门。

$ xz --version
xz (XZ Utils) 5.6.1
liblzma 5.6.1

目前迹象表明,后门作者有选择性的针对 linux 发行版下手。但这个 liblzma 可不只Linux上用。比如目前流行的iOS越狱环境,大部分 tweak 包还是以 .deb 格式发行,比较新的版本就用到了 lzma 作为压缩。除此之外,近期有在 macOS 上使用 brew 安装过 xz 这个包也受影响,暂时不能证明有恶意行为:

漏洞预警 | liblzma/xz被植入后门

解决方法

解决方法:

• 降级到5.6.0以下版本

• 更新到官方最新版5.6.4

检测脚本:

检测脚本:

#! /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

参考资料:

https://www.openwall.com/lists/oss-security/2024/03/29/4

https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users

https://access.redhat.com/security/cve/CVE-2024-3094

https://lcamtuf.substack.com/p/technologist-vs-spy-the-xz-backdoor

原文始发于微信公众号(Eonian Sharp):漏洞预警 | liblzma/xz被植入后门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月2日10:28:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞预警 | liblzma/xz被植入后门https://cn-sec.com/archives/2620057.html

发表评论

匿名网友 填写信息