Dirty Pipe,Linux 多年来最严重的漏洞之一

近日,网上发布消息称,发现 Linux 中的一个新漏洞 这被列为 “高严重性”影响自 5.8 版以来的所有内核, 以及衍生产品,包括 Android。

被称为 脏管道允许数据在只读文件中被覆盖,并可能导致权限升级 通过将代码注入“根”进程。

尽管它已被修补到主线 Linux 内核中,但该漏洞可能会以特权升级利用的形式在所有运行 Linux 内核版本 5.8 或更高版本的设备上被武器化。

这也意味着一系列新发布的 Android 智能手机,如三星 Galaxy S22 和谷歌 Pixel 6,也很容易受到攻击,直到每台设备从各自的 OEM 收到适当的内核补丁。

关于脏管

该漏洞是 安全研究员 Max Kellerman 透露 并分类为 (CVE-2022-0847),花了几个月的时间才找到一个概念验证漏洞。

该漏洞允许非特权用户在只读文件中注入和覆盖数据,包括以 root 身份运行的 SUID 进程。 俗称的昵称似乎是臭名昭著的错误 肮脏的牛 以及一种称为流水线的 Linux 机制,用于进程间消息传递,因为后者在漏洞利用例程中使用。

这一切都始于一年前与损坏文件相关的支持票。 有客户抱怨下载的访问日志无法解包。 事实上,其中一台日志服务器上有一个损坏的日志文件; 它可能是未压缩的,但 gzip 报告了 CRC 错误。 我无法解释它为什么会损坏,但我认为夜间拆分过程已经崩溃并产生了一个损坏的文件。 我手动更正了文件的 CRC,关闭了工单,很快就忘记了问题。

经过几个月的分析, 研究人员最终发现,损坏的客户端文件是 Linux 内核中的错误造成的。 他找到了一种利用 Dirty Pipe 的方法,允许任何拥有帐户的人(包括权限较低的“nobody”帐户)向 root 用户帐户添加 SSH 密钥。

为了触发该漏洞,Kellerman 分享了他的概念证明,攻击者必须具有读取权限。 此外,滚动不能在页面边界上,写入不能跨越页面边界,并且文件不能调整大小。

要利用此漏洞,您必须:创建管道,用任意数据填充管道(通过在环中的所有条目上设置 PIPE_BUF_FLAG_CAN_MERGE 标志),清空管道(在结构中的 pipe_buffer 结构的所有实例上设置标志pipe_inode_info 环),将目标文件(使用 O_RDONLY 打开)中的数据合并到目标偏移之前的管道中,并将任意数据写入管道。

Dirty Pipe 还会影响任何基于 Linux 内核易受攻击版本之一的 Android 版本。 由于 Android 如此碎片化,无法统一跟踪受影响的设备型号。

根据凯勒曼的说法, 谷歌上个月将其错误修复与 Android 内核合并, 在 Linux 内核版本 5.16.11、5.15.25 和 5.10.102 的发布修复之后。

话虽如此,在 OEM 开始推出包含该修复程序的 Android 更新之前,我们可能需要稍等片刻。 例如,谷歌的 Pixel 6 仍然容易受到攻击,但高级用户可以通过安装定制补丁的售后内核作为替代选项来缓解该漏洞。

Linux 内核开发人员于 5.16.11 月 5.15.25 日发布了修复程序(5.10.102、23、24),而 Google 于 XNUMX 月 XNUMX 日修补了 Android 内核。 Kellermann 和其他专家将该漏洞与 CVE-2016-5195 “脏牛” 他们说它更容易被利用。

最后,如果您有兴趣了解更多信息,可以查阅详细信息。 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。