“Dirty Pipe”的故事-Linux 内核提权漏洞 (CVE-2022-0847)

漏洞简述

3月7日,开发者 Max Kellermann 在他的博客(https://dirtypipe.cm4all.com/)中披露了一个能导致 Linux 权限提升的漏洞,编号为 CVE-2022-0847,他称之为 “The Dirty Pipe Vulnerability” (“脏管道”漏洞)。

Linux 5.10版本前的一次 commit 中,重构了匿名管道缓冲区的代码,修改了“可合并”检查的逻辑,这个修改造成了通过匿名管道覆盖任意只读文件的漏洞,攻击者可以利用该漏洞进行本地权限提升。

漏洞评级为严重,受影响 Linux Kernel 版本范围为:

  • 5.8 ~ 5.10.102
  • 5.8 ~ 5.15.25
  • 5.8 ~ 5.16.11

此漏洞很容易被利用以获得root权限,漏洞利用信息已公开,建议用户尽快升级到 5.10.102 或 5.15.25 或 5.16.11 及以上版本 Linux 内核。

漏洞时间线

  • 2021年4月29日,Linux 内核错误导致的文件损坏第一次出现
  • 2022年2月19日,Kellerman 确定文件损坏是 Linux 内核错误导致的,并证明该漏洞可利用
  • 2月20日,Kellerman 向 Linux 内核安全团队提交该漏洞
  • 2月21日,Google Pixel 6 上漏洞重现,向 Android 安全团队提交漏洞
  • 2月23日,稳定版本 (5.16.11, 5.15.25, 5.10.102) 修复了该漏洞
  • 2月24日,Android 内核修复该漏洞
  • 3月7日,公开披露

缺陷分析

Max Kellermann 在他的博客中提到 linux 的 commit f6dd975583bd(详见参考链接) 重构了匿名管道缓冲区的代码,修改了“可合并”检查的逻辑。

“Dirty Pipe”的故事-Linux 内核提权漏洞 (CVE-2022-0847)

“可合并”检查逻辑修改前,pipe_buf_can_merge方法对管道缓冲区的操作进行了判断,管道缓冲区的合并是有条件的。

“Dirty Pipe”的故事-Linux 内核提权漏洞 (CVE-2022-0847)

“可合并”检查逻辑修改后,PIPE_BUF_FLAG_CAN_MERGE 是固定值,即默认合并管道缓冲区的内容。

“Dirty Pipe”的故事-Linux 内核提权漏洞 (CVE-2022-0847)

从上述逻辑来看,这个修改就是“脏管道”漏洞的出现的原因了。

Max Kellermann 在博客中描述了自己从一次文件损坏中发现 linux 内核的漏洞的故事,随着文件损坏出现的越来越多,情绪变的更加沮丧,甚至开始怀疑鬼神。最后在排除自身问题后发现了内核错误。

以后遇到bug后多质疑,万一是软件的问题呢?

参考链接

https://dirtypipe.cm4all.com/

https://github.com/torvalds/linux/commit/f6dd975583bd8ce088400648fd9819e4691c8958

发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/vulnerability-analysis/4097.html

(0)
上一篇 2023年1月4日 16:12
下一篇 2023年1月4日 16:13

相关推荐

  • Ghost 博客系统后台代码执行漏洞分析

    漏洞简述 Ghost 是以Node.js语言开发的一款开源博客程序,在Github上其star为超过4万。 漏洞分析 漏洞因为需要后台权限,有一定利用条件,有趣的点在于Ghost的RCE漏洞是由于moment.js下的路径遍历和文件包含漏洞,再加上Ghost中的文件上传和指定locale功能。moment.js中的文件包含漏洞,在一般情况下可能影响较小,但结…

    2023年1月4日
  • Spring 新版本修复RCE漏洞,墨菲安全开源工具可应急排查

    漏洞简述 3月31日,spring 官方通报了 Spring 相关框架存在远程代码执行漏洞,并在 5.3.18 和 5.2.20.RELEASE 中修复了该漏洞。 漏洞评级:严重 影响组件:org.springframework:spring-beans 影响版本:< 5.3.18 和 < 5.2.20.RELEASE 的Spring框架均存在该…

    2023年1月4日
  • Spark 存在 shell 命令注入(CNVD-C-2022-163612

    漏洞简述 3月24日,墨菲安全实验室情报预警监控发现 spark 提交修复 shell 命令注入的代码,当上传文件名可以被攻击者控制时,就可以构造恶意文件名造成远程任意命令执行。 Spark 是用于大规模数据处理的统一分析引擎。 用户上传文件后,tar 文件会被 hadoop 的 tar 命令解压,如果文件名被用户恶意构造后,就会导致 shell 命令注入。…

    2023年1月4日
  • CVE-2023-23752 Joomla未授权访问漏洞分析

    Joomla 在海外使用较多,是一套使用 PHP 和 MySQL 开发的开源、跨平台的内容管理系统(CMS)。Joomla 4.0.0 至 4.2.7 版本中的 ApiRouter.php#parseApiRoute 在处理用户的 Get 请求时为对请求参数有效过滤,导致攻击者可向 Joomla 服务端点发送包含 public=true 参数的请求

    2023年2月23日
  • 二月最新漏洞列表

    Apache IoTDB-Workbench <0.13.3 存在身份验证绕过漏洞(CVE-2023-24829),Apache Linkis <1.3.1 任意客户端文件读取漏洞(CVE-2022-44644),Apache Linkis <1.3.1 存在反序列化漏洞(CVE-2022-44645),Apache InLong 存在任意文件读取漏洞(CVE-2023-24977)

    2023年2月6日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-180-9568

邮件:hi@murphysec.com

工作时间:周一至周五,10:00-19:00,节假日休息

关注公众号

20230105-100741