【墨菲安全实验室】“Dirty Pipe”的故事-Linux 内核提权漏洞

简介: 【墨菲安全实验室】“Dirty Pipe”的故事-Linux 内核提权漏洞

漏洞简述


开发者 Max Kellermann 在他的博客(https://dirtypipe.cm4all.com/)中披露了一个能导致 Linux 权限提升的漏洞,他称之为 “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 内核。


漏洞时间线


Linux 内核错误导致的文件损坏第一次出现

Kellerman 确定文件损坏是 Linux 内核错误导致的,并证明该漏洞可利用

Kellerman 向 Linux 内核安全团队提交该漏洞

Google Pixel 6 上漏洞重现,向 Android 安全团队提交漏洞

稳定版本 (5.16.11, 5.15.25, 5.10.102) 修复了该漏洞

Android 内核修复该漏洞

公开披露


缺陷分析


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

1.png

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

1.png

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

1.png

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


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


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


漏洞检测及修复


关于该漏洞的检测策略已在墨菲安全的所有工具产品中上线,您可以安装使用墨菲安全的JetBrains IDE插件、CLI客户端等对你的项目进行检测,并一键修复。


JetBrains IDE 代码安全检测插件: 使用文档

通用检测客户端: https://github.com/murphysec/murphysec

使用我的邀请码注册获取token:https://www.murphysec.com/j?p=mycsdn

如果你觉得这个工具对你有用,可以star我们的开源项目或者提issues,谢谢啦!


参考链接


https://dirtypipe.cm4all.com/

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


相关文章
|
10月前
|
安全 网络协议 Linux
深入理解Linux内核模块:加载机制、参数传递与实战开发
本文深入解析了Linux内核模块的加载机制、参数传递方式及实战开发技巧。内容涵盖模块基础概念、加载与卸载流程、生命周期管理、参数配置方法,并通过“Hello World”模块和字符设备驱动实例,带领读者逐步掌握模块开发技能。同时,介绍了调试手段、常见问题排查、开发规范及高级特性,如内核线程、模块间通信与性能优化策略。适合希望深入理解Linux内核机制、提升系统编程能力的技术人员阅读与实践。
913 1
|
9月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
244 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
9月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
373 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
9月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
492 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
10月前
|
安全 Linux C++
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
424 0
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
|
10月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
746 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
10月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
1038 0
|
10月前
|
Web App开发 缓存 Rust
|
10月前
|
Ubuntu 安全 Linux
Ubuntu 发行版更新 Linux 内核,修复 17 个安全漏洞
本地攻击者可以利用上述漏洞,攻击 Ubuntu 22.10、Ubuntu 22.04、Ubuntu 20.04 LTS 发行版,导致拒绝服务(系统崩溃)或执行任意代码。