Linux 已成为另一个高度严重的特权升级漏洞的牺牲品,最近又出现了控制组漏洞,该漏洞允许威胁参与者逃离容器并执行任意代码。 这个新漏洞将 Linux 中的管道机制武器化,并使用它来获得具有 root 权限的写访问权限。
它引起了整个 Linux 社区的关注,并被提名为自 2016 年以来在 Linux 中发现的最严重威胁之一。
Linux 中的脏管道是什么?
Linux 中的 Dirty Pipe 漏洞允许非特权用户执行能够执行一系列破坏性操作的恶意代码,包括在系统中安装后门、将代码注入脚本、更改提升程序使用的二进制文件以及创建未经授权的用户配置文件。
此错误被跟踪为 CVE-2022-0847 并且被称为 《肮脏的管道》 因为它带有一个 close 相似于 脏牛,2016 年的一个易于利用的 Linux 漏洞,它授予不良行为者相同级别的特权和权力。
脏管如何工作?
Dirty Pipe,顾名思义,恶意利用 Linux 的管道机制。 管道是 Linux 中一种古老的机制,它允许一个进程将数据注入另一个进程。 它允许本地用户在任何具有公开可用且易于开发的漏洞利用的系统上获得 root 权限。
它是一种单向的进程间通信方法,其中一个进程从前一个进程获取输入并为行中的下一个进程生成输出。
Dirty Pipe 利用这种机制与 splice 功能相结合来覆盖敏感的只读文件,例如 /etc/passwd,可以对其进行操作以获得无密码的 root shell。
虽然这个过程听起来很复杂,但让 Dirty Pipe 极其危险的是它非常容易复制。
复制漏洞的步骤
以下是按照原版执行的步骤 Max Kellerman 的 PoC:
1. 创建你的管道。
2. 将任意数据输入管道。
3. 排空管道数据。
4. 使用拼接功能,将目标文件中的数据拼接到管道中,就在目标偏移量之前。
5. 将任意数据输入到将覆盖缓存文件页面的管道中。
此漏洞有一些限制。 成功开发需要满足某些条件。
漏洞利用的局限性
该漏洞利用的局限性是:
1. 攻击者必须具有读取权限,因为没有它,他们将无法使用拼接功能。
2. 偏移量不能在页面边界上。
3. 写进程不能跨越页边界。
4. 文件无法调整大小。
谁会受到脏管漏洞的影响?
Dirty Pipe 的攻击面涵盖从 5.8 到 5.16.11 的所有 Linux 内核版本。 通俗地说,这意味着从 Ubuntu 到 Arch 以及介于两者之间的所有发行版都容易受到 Dirty Pipe 的影响。
受影响的 Linux 内核版本范围从 5.8 到 5.10.101.
由于此漏洞深入 Linux 内核的基础部分,因此它可能会在全球范围内产生影响。 Dirty Pipe 的易用性及其范围使得 Dirty Pipe 成为所有 Linux 维护者的主要威胁。
一旦推出安全更新,研究人员就会提醒企业和独立用户修补他们的服务器和系统。
如何修复脏管漏洞,你安全吗?
如果您的系统容易受到 Dirty Pipe 的影响,最好的做法是使用最新的安全更新来更新您的系统。 该漏洞由 CM4all 的 Max Kellerman 于 2022 年 2 月 20 日左右首次报告,并发布了一个缓解内核版本威胁的补丁 5.10.102、5.15.25 和 5.16.11 由 Linux 内核安全团队于 2022 年 2 月 23 日发布。
谷歌已经发挥了自己的作用,并在一天后的 2022 年 2 月 24 日修补了 Android 中的漏洞。因此,如果您将 Linux 机器保持在最新状态,那么您应该无忧无虑且安全。
脏管的未来是什么?
根据 Linux 服务器统计,目前已部署并在线的网络服务器超过 100 万台,是首选操作系统。 所有这些数据都应该足以阐明 Dirty Pipe 的范围以及它的破坏性。
再加上它,就像 Dirty Cow 一样,除了更新内核之外,没有其他方法可以缓解它。 因此,如果 Web 服务器和运行易受攻击的内核版本的系统受到 Dirty Pipe 的攻击,它们就会陷入困境。
鉴于互联网上存在大量漏洞利用,建议所有系统维护人员始终保持警惕,并警惕任何拥有本地访问权限的人,直到他们的系统被修补。