针对 CVE-2022-0847(Dirty Pipe)的概念验证漏洞利用程序,这是一个 Linux 内核漏洞,允许非特权用户写入只读文件。
CVE-2022-0847 影响 Linux 内核 5.8 至 5.16 版本。它利用 Linux 内核管道实现中的竞态条件,将任意数据写入缓存于内存中的只读文件页。
/etc/passwd).
├── src/
│ └── exploit.c # Dirty Pipe 漏洞利用源代码
├── run.sh # QEMU 测试环境启动器
├── initramfs/ # 用于测试的根文件系统
├── debugfs.cpio # 压缩的 initramfs
└── README.md # 本文件
libelf-dev(用于内核构建)gcc ./src/exploit.c -o ./src/exploit -static -pthread
./run.sh
# 在 QEMU shell 内:
/home/exploit
cat /etc/passwd # 验证密码哈希是否已写入
su root # 切换到 root(利用后无需密码)
./src/exploit
该漏洞利用程序修改 /etc/passwd,注入一个具有已知密码哈希的 root 用户。
该漏洞利用程序的工作原理如下:
PIPE_BUF_FLAG_CAN_MERGE 标志splice() 将文件页连接到管道缓冲区这允许在不触发 COW(写时复制)的情况下写入只读内存页。
/proc/self/mem 的访问本漏洞利用程序仅用于教育和授权的安全测试目的。未经授权访问计算机系统是违法的。
Minh Vu ([email protected])