lilshimu/Expl220847
GitHub: lilshimu/Expl220847
CVE-2022-0847 Dirty Pipe 漏洞的简化 PoC,演示如何利用 Linux 内核管道机制的标志位缺陷绕过文件权限检查实现本地提权。
Stars: 0 | Forks: 0
# Expl220847
## 描述
本仓库包含 **CVE-2022-0847** (Dirty Pipe) 漏洞利用的简化实现。
该漏洞允许无特权的本地用户覆盖以只读方式(`O_RDONLY`)打开的文件中的数据,即使在只读文件系统上也是如此。这可以用来修改关键系统文件,例如 `/etc/passwd`、`/etc/shadow`、setuid 二进制文件,或 `/usr/bin` 中的脚本。
### 受影响的内核版本
- **存在漏洞**:Linux 5.8 及更高版本(直到补丁修复前)
- **修复版本**:
- 5.16.11
- 5.15.25
- 5.10.102
- 5.4.179
- 4.19.233
- 4.14.299
- 以及所有更新版本
## 构建
```
gcc -Wall -Wextra expl220847.c -o dirtypipe
```
## 用法
```
./dirtypipe ""
```
## 工作原理
1. 创建一个管道并将其填充至最大容量。
2. 从管道中读取数据,直到仅剩一个字节。
3. 使用 splice() 将目标文件的一个字节加载到管道中。
4. 由于对 PIPE_BUF_FLAG_CAN_MERGE 标志的处理存在缺陷,随后的 write() 操作会将数据直接合并到目标文件的页缓存(page cache)中,从而绕过权限检查。
## 免责声明
该漏洞利用程序仅供教育和研究目的提供。
标签:CVE-2022-0847, Dirty Pipe, Linux内核, Linux内核漏洞, meg, O_RDONLY绕过, Page Cache, PIPE_BUF_FLAG_CAN_MERGE, PoC, splice系统调用, Web报告查看器, 信息安全, 子域名枚举, 安全渗透, 客户端加密, 开源安全工具, 数据展示, 文件覆写, 暴力破解, 本地提权, 漏洞利用代码, 漏洞复现, 特权提升, 系统安全, 红队, 网络安全, 自动化部署, 逆向工程平台, 隐私保护, 页缓存