漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解

admin 2022年3月8日14:12:46评论154 views字数 1658阅读5分31秒阅读模式

1


漏洞简介



这是 CVE-2022-0847 的故事,它是自 5.8 以来 Linux 内核中的一个漏洞,它允许覆盖任意只读文件中的数据。这会导致权限提升,因为非特权进程可以将代码注入根进程。

它类似于CVE-2016-5195 “Dirty Cow”,但更容易被利用。

该漏洞已 在 Linux 5.16.11、5.15.25 和 5.10.102 中修复。


2


影响版本



Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux


3


原理



在我的第一个漏洞利用(我用于 bisect 的“writer”/“splicer”程序)中,我假设这个 bug 只能在特权进程写入文件时被利用,并且它取决于时间。

当我意识到真正的问题是什么时,我能够大大扩大漏洞:即使在没有写入器的情况下,也可以在没有时间限制的情况下,在(几乎)任意位置使用任意数据覆盖页面缓存. 限制是:

  • 攻击者必须具有读取权限(因为它需要将 splice()页面放入管道)

  • 偏移量不能在页面边界上(因为该页面的至少一个字节必须已拼接到管道中)

  • 写入不能跨越页面边界(因为将为其余部分创建一个新的匿名缓冲区)

  • 文件无法调整大小(因为管道有自己的页面填充管理,并且不会告诉页面缓存附加了多少数据)

要利用此漏洞,您需要:

  1. 创建管道。

  2. 用任意数据填充管道( PIPE_BUF_FLAG_CAN_MERGE在所有环条目中设置标志)。

  3. 排干管道(在环上的所有实例中设置标志)。struct pipe_bufferstruct pipe_inode_info

  4. 将目标文件(以 开头O_RDONLY)中的数据从目标偏移之前的位置拼接到管道中。

  5. 将任意数据写入管道;此数据将覆盖缓存的文件页面,而不是创建新的异常,因为已设置。struct pipe_bufferPIPE_BUF_FLAG_CAN_MERGE

为了让这个漏洞更有趣,它不仅可以在没有写权限的情况下工作,它还可以用于不可变文件、只读 btrfs 快照和只读挂载(包括 CD-ROM 挂载)。这是因为页面缓存始终是可写的(由内核),并且写入管道从不检查任何权限。


4


复现



漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解

4


时间线



  • 2021-04-29:关于文件损坏的第一个支持票

  • 2022-02-19:文件损坏问题被确定为 Linux 内核错误,结果证明这是一个可利用的漏洞

  • 2022-02-20:向Linux 内核安全团队发送错误报告、漏洞利用和补丁

  • 2022-02-21:在 Google Pixel 6 上重现错误;发送给 Android 安全团队的错误报告

  • 2022-02-21: 按照 Linus Torvalds、Willy Tarreau 和 Al Viro 的建议,将补丁发送到 LKML(不含漏洞详细信息)

  • 2022-02-23:带有我的错误修复的Linux稳定版本 (5.16.11、5.15.25、5.10.102)

  • 2022-02-24:Google 将我的错误修复合并到 Android 内核中

  • 2022-02-28:通知linux-distros 邮件列表

  • 2022-03-07:公开披露


5


exp下载



公众号后台回复20220308获取下载链接


6


参考链接


https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploithttps://github.com/imfiver/CVE-2022-0847https://dirtypipe.cm4all.com/

往期精彩推荐
漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解

记一次搭建靶场渗透过程(1)
记一次搭建靶场渗透过程(2)
记一次搭建靶场渗透过程(3)
漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解
漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解
           团队介绍
银河护卫队super,是一个致力于红队攻防实战、内网渗透、代码审计、安卓逆向、安全运维等技术干货分享的队伍,定期分享常用渗透工具、复现教程等资源。欢迎有想法、乐于分享的具备互联网分享精神的安全人士进行交流学习。
漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解
点击关注银河护卫队super

原文始发于微信公众号(银河护卫队super):漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月8日14:12:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞预警 | CVE-2022-0847linux内核提权漏洞复现/原理讲解http://cn-sec.com/archives/821901.html

发表评论

匿名网友 填写信息