公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
红帽发布了一份 “针对 Fedora Linux 40 和 Fedora Rawhide 用户的紧急安全警报” 指出,最新版本的 xz 5.6.0/5.6.1 工具和库中包含恶意代码,可能允许未经授权的远程系统访问。
xz 是一种通用数据压缩格式,几乎存在于每个 Linux 发行版中,包括社区项目和商业产品发行版。
从本质上讲,它有助于将大文件格式压缩(然后解压缩)为更小、更易于管理的大小,以便通过文件传输进行共享。
红帽已经该漏洞标记为 CVE-2024-3094。目前的调查表明,这些软件包仅存在于 Red Hat 社区生态系统内的 Fedora 41 和 Fedora Rawhide 中,Red Hat Enterprise Linux (RHEL) 的所有版本均不受影响。
影响范围
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
你可以在命令行输入 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 这个包也受影响,暂时不能证明有恶意行为。
检测及解决方法
降级到 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
安全研究人员 Andres Freund 进行的逆向工程分析发现,恶意代码使用巧妙的技术来逃避检测。更多详情可查看此 oss-security 列表。
值得一提的是,目前 GitHub 已全面禁用了 tukaani-project/xz 仓库,并附有一条信息:
由于违反了 GitHub 的服务条款,GitHub 工作人员已禁止访问该版本库。如果您是该版本库的所有者,可以联系 GitHub 支持部门了解详情。
据称向 xz 添加恶意代码的攻击者被认为处心积虑,潜伏长达三年时间。使用中文拼音的攻击者 JiaT75 (Jia Tan) 于 2021 年创建了 GitHub 账号,之后积极参与了 xz-utils 的开发,获取信任之后成为了该项目的维护者之一。
过去几个月,JiaT75 开始非常巧妙的悄悄加入恶意代码,“分阶段通过添加测试用例数据为掩盖放入了恶意代码,并在发布时在m4脚本的目录中添加了一些精妙的把恶意代码重新组装、解压缩的脚本,在库中添加了劫持某 OpenSSL 函数的功能,添加了一个 SSH 后门。
”创建后门版本之后 JiaT75 还积极联络主要 Linux 发行版维护者,以该版本包含“很棒新特性”为由督促他们使用后门版本。但后门代码存在 bug,会导致崩溃等,此人随后与 Linux 开发者们频繁联络通信,试图修复问题,并建议他们发现问题后不要公开。
目前 JiaT75 的账号以及 xz-utils 库都已被 GitHub 关闭。
xz 后门事件凸显了维护者在维护一个基本上不会得到多少外界帮助的开源项目时所面临的挑战,当别有用心的人热情提供帮助,你真的难以分辨对方是真心还是假意。
对于 xz 项目原唯一维护者 Lasse Collin 邮件列表交流的分析显示,这位维护者早就筋疲力尽了,他承认如果有 bug 会去修,但开发新功能基本上不可能了。
这种情况在 JiaT75(Jia Tan)积极提供帮助后发生了变化,Jia Tan 是少数或者可能是唯一一位愿意“帮助”而不是抱怨开发停滞的人。
Lasse Collin 表示考虑让 Jia Tan 扮演更重要的角色,甚至让其接手维护。对于不断抱怨和提出要求的用户,他强调这是一个无薪水的业余项目。在“用户”不断的要求之下,Jia Tan 成为了项目的共同维护者。
相关链接
https://www.solidot.org/story?sid=77737
https://www.solidot.org/story?sid=77741
https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27
本文转载自:「OSC开源社区」,原文:https://url.hi-linux.com/PFRfh,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。
最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。
你可能还喜欢
点击下方图片即可阅读
如何基于 Docker 镜像优雅的逆向生成 Dockerfile
点击上方图片,『美团|饿了么』外卖红包天天免费领
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!