安全提醒:xz 软件包被植入后门

太长不看立刻检查所有 Linux 机器和容器的 xz 版本,并升级到最新!

检查 xz 版本时请视 xz 为病毒,切勿直接执行 xz --version!你可以从包管理器间接得知 xz 的版本。

情况

xz 是一种在Linux上使用高压缩率的工具,它使用 LZMA2 算法进行文件压缩和解压缩,目前广泛使用。

xz 上游发布的 5.6.05.6.1 版本的代码包(tarball)中含有添加后门的恶意代码,允许远程代码执行:

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

影响版本

所有安装了 xz 5.6.0 - 5.6.1 的用户。5.6.0 大约是一个月以前发布的。

根据源代码,攻击似乎限定于 Debian 系发行版,如 Ubuntu 等。其他发行版用户似乎不受影响。

另外,Debian 和其他几个发行版对 openssh 软件包打了补丁,引入了 systemd 通知支持,而 libsystemd 确实依赖于 lzma。所以你的 openssh 也可能是带毒的。可以通过如下命令确定:

ldd "$(command -v sshd)"

应对措施

立刻升级到发行版提供的修复版本,在此之前请勿运行 xz。

对 Arch 而言修复版是 5.6.1-2,其他发行版请自查。

出于安全考虑,即便升级后也尽量不要使用 xz,直到开源社区彻查代码问题。你可以使用 zstd 等工具来压缩文件。

回声

XZ 仓库于今早已被 GitHub 封禁。投毒者身份依然不明,但其显示的时区和昵称似乎表示其为港台或新马地区人。不过,这些都可以是伪造信息。

编辑:一些证据表明,该投毒者可能早有预谋,已经看似「勤勤恳恳」给 xz 编写了 3 年代码。因此,过去 3 年的所有 xz 版本都不太可信:

2 Likes

:thinking:

这么惨。

ZIP 多香啊

艹,真够黑的

问题不在于其他压缩软件香不香,而是供应链问题:比如 debian 魔改的 ssh 直接依赖 xz,所以有可能也会中招。这玩意儿中招的危害可就大了。


另外,lzma、zstd 等现代压缩算法的性能、压缩率、使用广泛度都已经爆锤 zip 几条街了,不能指望大家还守着到现在都不支持很多现代功能的 zip 算法和格式吧。依赖攻击防不胜防啊。

2 Likes

现在主流的压缩格式是什么?
我第一还是RAR,第二是7Z。

我去,libarchive可是我每天都用的

.xz 这类压缩包格式一般不是大家日常使用的,它可能是开发者打包源代码,或进行数据传输时使用的。

如果从应用广泛性的角度考虑,.zip 可能仍排在第一位。

1 Like

今天刚看到,已升级 Arch Linux。

https://archlinux.org/news/the-xz-package-has-been-backdoored/

我看到有个大神自己写了个 zip 压缩算法,说自己这个压缩率可以比得上 7-zip,还在此基础之上写了一个压缩工具和一个 PNG 优化工具。
http://www.advsys.net/ken/utils.htm

xz 是在 7z 格式的基础上开发的另一种格式,但是针对 Unix 系列的文件管理方式做了特别的优化

因为+8时区,已经都有人直呼对华裔的侮辱性称呼了…… :doge:

我去,Win11也带了libarchive吧。

从另一个角度来思考:黑客防范意识比一般人强很多。如果我是攻击者,我肯定不会在 GitHub 实名上网、填自己真实时区。 因此,攻击者多半不是华裔,并且深谙东西方意识形态矛盾。

只看到有人说那个pr并没有问题

不能顾名思义地认为有 safe_fprintf 还要用 fprintf 就是不安全,可以看 safe_fprintf 的源代码( libarchive/tar/util.c at 9147def1da7ad1bdd47b3559eb1bfeeb0e0f374b · libarchive/libarchive · GitHub ),它只是对不可打印的字符做了特殊处理而已(换句话说,这个 safe 只是对用户的眼睛 safe 而已,写入不可打印字符本身没有什么问题

国人脸都丢尽了

可以使用命令检查:

apt list --installed 2>&1 | grep xz | grep -E '5.6.0|5.6.1' && echo "!!! Check your system now" || echo "Everything is ok"

吓死了吓死了。看了一圈,最高 5.4.1…

手动更新一波

https://github.com/libarchive/libarchive/actions/runs/8485974099/artifacts/1370697222

三年磨一剑,这是图个啥?

2 Likes

可能是早有预谋。蓝点网的报道其实说得很清楚了:

孤独的开源贡献者问题:

在这里还需要额外讨论一个开源项目的问题,xz-utils 尽管被全世界的 Linux 发行版、压缩软件广泛使用,但在之前只有一名活跃的贡献者在维护这个项目。

这个孤独的贡献者可能因为精力不够或者其他原因,在遇到一名新的贡献者时,随着时间的推移,在获取信任后,这名新贡献者逐渐获得了项目的更多控制权。

实际上这名黑客应该也是精心挑选的项目,知道这种情况下可能更容易获取控制权,于是从 2022 年开始就贡献代码,直到成为主要贡献者后,再实施自己的后门行动。

未来这类针对开源项目的供应链攻击应该还会显著增加,这对整个开源社区来说应该都是头疼的问题。

总之这样的项目只需要满足两点:

  1. 这个项目非常基础,被许多核心项目(例如 ssh)依赖;
  2. 没有人关注这个项目,维护者很少并且没有得到过任何收入,积极性很低。

只要有一些开发经验,就可以轻易取得这样的项目的控制权,继而随意投毒。

我觉得开源安全问题的解决从来只有一条路:投钱、投人力。对 xz 来说,几乎是心安理得地被安装在全世界 99.9% 的企业系统上了,居然 4 年以来只有一名维护者,并且没有从这些企业身上赚到过一分钱。

还有很多开源项目都是这样,想想这些项目的安全性,细思极恐啊。