突发: xz-utils 被注入后门 (CVE-2024-3094)

news2024/11/24 6:25:45

Andres Freund 在 2024 年 3 月 29 日发现了一个在 xz-utils 注入的后门;使用了 xz/lzma 5.6.0 / 5.6.1 的项目皆受影响。

杀伤力:

当前还未完全清楚;但 openssh 的 sshd 首当其冲;注入的代码会 Hook OpenSSH 的 RSA_public_decrypt 函数,致使攻击者可以通过构造特定的验证数据绕过 RSA 签名验证,允许特定的 SSH 密钥进行登录,绕过 SSH 身份验证。凭此一点,足见其影响之恶劣。

波及的范围:

  • 可以通过命令 xz --version 或者 xz -V 来查看当前 xz 的版本;幸运的是,该后门被及时发现,还未进入到主流 Linux 发行版的 stable 版本;但采用 rolling update 或者追求软件最新版的包管理器(例如 nix)的用户可能受到影响,请马上更新或者回退。
  • 注意,上述命令只能确认 xz 命令是否受此后门影响,不能完全排查出系统其它软件是否依赖问题版本,从而有风险。请大家密切关注该安全事件,我们也会在官网上持续更新相关的信息。
  • 根据 repology,已知受影响的版本:
    • Cygwin, mingw, Manjora,AUR,
    • Alpine( EDGE 版本 受影响,所幸 latest 版本 没有受影响 )
  • 前沿尚未稳定的 Linux 发行版 (Arch, Debian, Red Hat, openSUSE)

xz.security.cn

事情简报

  1. 攻击者 JiaT75 于 2021 年注册了 GitHub 账号,之后积极参与 xz 项目的维护,并逐渐获取信任,获得了直接 commit 代码的权利。
  2. JiaT75 在最近几个月的一次 commit 中,悄悄加入了 bad-3-corrupt_lzma2.xzgood-large_compressed.lzma 两个看起来人畜无害的测试用二进制数据,然而在编译脚本中,在特定条件下会从这两个文件中读取内容对编译结果进行修改,致使编译结果和公开的源代码不一致。
  3. 目前初步的研究显示,注入的代码会使用 glibc 的 IFUNC 去 Hook OpenSSH 的 RSA_public_decrypt 函数,致使攻击者可以通过构造特定的验证数据绕过 RSA 签名验证。(具体细节还在分析中)
  4. 只要是同时使用了 liblzma 和 OpenSSH 的程序就会受到影响,最直接的目标就是 sshd,使得攻击者可以构造特定请求,绕过密钥验证远程访问。
  5. 受影响的 xz-utils 包已经被并入 Debian testing 中进行测试,攻击者同时也在尝试并入 fedora 和 ubuntu。
  6. 幸运的是,Andres Freund commiter 在做一些微基准测试,看到 sshd 进程使用了​​惊人数量的 CPU,随后顺藤摸瓜发现了这个阴谋并报告给 linux-distros,然后报告给 oss-security。致使此事败漏。
  7. 目前 GitHub 已经关停了整个 xz 项目

上述简报内容有对 Yachen Liu 的推文帖进行参考并进行改动

作者及官网声明

注意,攻击的开发者是 Jia Tan,而非 xz-utils 的原作者 Lasse Collin。以下是 Lasse Collin 的声明:

Facts:

  1. CVE-2024-3094
  2. XZ Utils 5.6.0 and 5.6.1 release tarballs contain a backdoor. These tarballs were created and signed by Jia Tan.
  3. Tarballs created by Jia Tan were signed by him. Any tarballs signed by me were created by me.
  4. GitHub accounts of both me (Larhzu) and Jia Tan are suspended.
  5. xz.tukaani.org (DNS CNAME) was hosted on GitHub pages and thus is down too. It might be moved to back to the main tukaani.org domain in the near future.
  6. Only I have had access to the main tukaani.org website, git.tukaani.org repositories, and related files. Jia Tan only had access to things hosted on GitHub, including xz.tukaani.org subdomain (and only that subdomain).

当前作者的声明比较仓促,因此大家可以持续关注官网的声明。

https://tukaani.org/xz-backdoor

x-cmd 自查 – 暂未受影响

当前 x-cmd pkg 的软件体系,暂时还没找到携带该漏洞的 pkg:

  • x-cmd/pkg 的包:
    • 我们首先排查的 7za 用的是 lzma 5.4.5
    • 其次 zstd 和 python 同样也使用 xz-utils 5.4.5 版本作为依赖进行编译。
    • 因事故的发生,x-cmd 在将暂时锁定 xz-utils 5.4.5 版本作为所有需要 xz-utils 软件依赖进行编译。
  • 开发/构建环境:
    • 其次,我们打包xz 的时候,所用 xz 版本 是 5.4.2
    • 所用的服务器以及镜像,都还没更新到 5.6.0/5.6.1 版本,因此刚好避开了这个问题
  • x.bat / mingw / git for windows:
    • x-cmd 为 windows 用户提供了 x.bat,以帮助没装 WSL 及 mingw/cygwin 的用户通过安装 git-for-windows 来使用 x-cmd。
    • git-for-windows 依赖 mingw,而 mingw 最新版也受此波及,因此我们赶紧自查。
    • 自查发现,我们使用的 git-for-windows 是 v2.41.0,所用的 xz-utils 是 5.4.3 版本,因此没有受到此后门的影响;更让我们感到高兴的是,git-for-windows 的最新版(2.44.0)中的 xz 是 5.4.6,而并未受此波及。

然而,事情尚未尘埃落定,我们会继续关注这个问题,并尽最大努力守护我们的 pkg 体系。

这件事对 x-cmd pkg 工作的启发

这件事对我们有很多启发和影响:

  1. 我们将继续坚持这个观点: pkg 应该优先保证安全和质量;数量只能是更低的优先级
  2. 在未来,pkg 的引入会渐趋保守;尤其对于 x-cmd 模块中频繁使用的 pkg 版本,应该满足:
    1. 发布已有一段时间,久经考验,并未发现重大漏洞
    2. 在维护周期内的版本
  3. 我们的软件构建和上游供应链检查应该进一步加强,并不断使用最新的 CVE 数据库扫描自查。

其它思考

  1. 软件供应链是一个严肃的事情,但也是一个 出了事/发现损失 才会被严肃对待的事情
  2. FOSS 是一项伟大的事业,本身的开放带来技术传播的同时,丰富、优质的库以近乎零成本提供给下游应用开发者
  3. 然而,长期对 FOSS 社区的无偿要求,只会恶化这个社区,并增加此类安全问题的概率 – 进而让下游开发者的成本变得更高
  4. 需要有持续的正向资金支持 FOSS;保证并促使更多 FOSS 的开发者体面地且专注投入到 FOSS 软件的开发和维护
  5. FOSS 是这个时代的奇迹,也是这个时代的幸运;需要大家好好守护。

参考

  • Openwall: backdoor in upstream xz/liblzma leading to ssh server compromise
  • Article: A backdoor in xz
  • Article: Everything I Know About the Xz Backdoor
  • GitHub Gist: FAQ on the xz-utils backdoor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1558062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源推荐榜【Taichi 专为高性能计算机图形学设计的编程语言】

Taichi是一个高性能的并行编程语言,它被嵌入在Python中,使得开发者能够轻松编写可移植的、高性能的并行程序。这个库的核心优势在于它能够将计算密集型的Python代码在运行时通过即时编译器(Just-In-Time, JIT)转换成快速的机器代码,从而加速P…

上岸美团了!

Hello,大家好,最近春招正在如火如荼,给大家分享一份美团的面经,作者是一份某双非的硕(只如初见668),刚刚通过了美团的3轮面试,已经拿到offer,以下是他的一些分享。 一面&…

大数据学习-2024/3/30-MySQL5.6版本的安装

1、下载好文件后打开bin目录: 2、在这个位置进入输入cmd进入命令行界面,进入命令行界面后输入如下:mysqld install 进行数据库安装: 注意:显示Service successfully installed表示安装成功 3、安装好后启动服务&…

解决前后端通信跨域问题

因为浏览器具有同源策略的效应。 同源策略是一个重要的网络安全机制,用于Web浏览器中,以防止一个网页文档或脚本来自一个源(域、协议和端口),获取另一个源的数据。同源策略的目的是保护用户的隐私和安全,防…

GIt的原理和使用(五):模拟多人协作的两种情况

目录 多人协作 多人协作一 准备工作 协作开发 多人协作二 准备工作 额外场景 申请单合并分支 更推荐写法 远程分支删除后,本地git branch -a依然能看到的解决办法 多人协作 多人协作一 目标:在远程master分支下的file.txt文件新增代码“aaa”…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 一、简单介绍 二、简单图像浮雕效果实现原理 三、简单水彩画效果案例实现简单步骤 四、注意事项…

【排序算法——数据结构】

文章目录 排序排序的基本概念1.插入排序2.希尔排序3.冒泡排序4.快速排序5.简单排序6.堆排序7.归并排序8.基数排序8.外部排序9.败者树10.置换选择排序 排序 排序的基本概念 排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程 评价指标算…

数据库聚簇索引和非聚簇索引的区别

聚簇索引(Clustered Index)和非聚簇索引(Non-clustered Index)是数据库中两种不同的索引类型,它们的主要区别在于数据的存储方式和索引的结构: 数据存储方式: 聚簇索引:索引的叶子节…

【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用21、HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是…

夜莺浏览日志、filebeat采集日志(四)

文章目录 一、elasticsearch二、filebeat三、日志分析 一、elasticsearch docker启动 docker run -d -p 9200:9200 -p 9300:9300 --restartalways -e ES_JAVA_OPTS"-Xms512m -Xmx512m" \ -e discovery.typesingle-node -e xpack.security.enabledtrue -e ELASTIC_P…

HSP_04章_扩展: 进制、位运算

文章目录 10. 扩展: 进制11. 位运算11.1 二进制在运算中的说明11.2 原码 反码 补码11.3位运算符11.3.1 ~按位取反11.3.2 &按位与11.3.3 ^按位异或11.3.4 |按位或11.3.5 << 左移11.3.6 >> 右移 10. 扩展: 进制 进制介绍 进制的转换 2.1 其他进制转十进制 二进…

投稿指南【NO.12_9】【极易投中】核心期刊投稿(现代电子技术)

近期有不少同学咨询投稿期刊的问题&#xff0c;大部分院校的研究生都有发学术论文的要求&#xff0c;少部分要求高的甚至需要SCI或者多篇核心期刊论文才可以毕业&#xff0c;但是核心期刊要求论文质量高且审稿周期长&#xff0c;所以本博客梳理一些计算机特别是人工智能相关的期…

通过pymysql读取数据库中表格并保存到excel(实用篇)

本篇文章是通过pymysql将本地数据库中的指定表格保存到excel的操作。 这里我们假设本地已经安装了对应的数据库管理工具&#xff0c;里面有一个指定的表格&#xff0c;现在通过python程序&#xff0c;通过调用pymysql进行读取并保存到excel中。 关于数据库管理工具是Navicat P…

vCenter 提示 Root user password expired 解决办法

vCenter root 密码过期告警 vCenter 一般部署为一台虚拟机&#xff0c;该 root 用户是 vCenter 虚拟机SSH登录的用户&#xff0c;以及 vcenter VAMI的登录用户&#xff0c;该密码默认过期时间为90天。 vCenter涉及多个登录界面&#xff0c;本次提示root密码过期的用户涉及后两…

搜索与图论——Dijkstra算法求最短路

最短路算法 稠密图与稀疏图 n为点数&#xff0c;m为边数。m远小于n的平方为稀疏图&#xff0c;m接近n的平方为稠密图。 稀疏图用邻接表存&#xff0c;稠密图用邻接矩阵存 朴素版dijkstra时间复杂度为O(n^2),对于稠密图可以ac&#xff0c;但遇到稀疏图时会TLE。 dijkstra函数实…

【leetcode】力扣简单题两数之和

题目 思路 代码实现 #include<iostream> #include<unordered_map>using namespace std;class Solution { public:vector<int> TwoNumber(const vector<int>& nums, int target){vector<int> number_vector;unordered_map<int, int> …

java数组与集合框架(一) -- 数据结构,数组

数据结构 概述 为什么要讲数据结构&#xff1f; 任何一个有志于从事IT领域的人员来说&#xff0c;数据结构&#xff08;Data Structure&#xff09;是一门和计算机硬件与软件都密切相关的学科&#xff0c;它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储…

FL Studio21.2.3中文版软件新功能介绍及下载安装步骤教程

FL Studio21.2中文版的适用人群非常广泛&#xff0c;主要包括以下几类&#xff1a; FL Studio 21 Win-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55981 FL Studio 21 Mac-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55982 音乐制作人&#xff1a…

软考101-上午题-【信息安全】-网络安全

一、网络安全 1-1、安全协议 SSL(Secure Socket Layer&#xff0c;安全套接层)是 Netscape 于 1994年开发的传输层安全协议&#xff0c;用于实现 Web 安全通信。1996 年发布的 SSL3.0 协议草案已经成为一个事实上的Web 安全标准。 端口号是43。 SSL HTTP HTTPS TLS(Transpo…

整合SpringSecurity+JWT实现登录认证

一、关于 SpringSecurity 在 Spring Boot 出现之前&#xff0c;SpringSecurity 的使用场景是被另外一个安全管理框架 Shiro 牢牢霸占的&#xff0c;因为相对于 SpringSecurity 来说&#xff0c;SSM 中整合 Shiro 更加轻量级。Spring Boot 出现后&#xff0c;使这一情况情况大有…