针对 CVE-2022-0185 的概念验证漏洞利用程序,该漏洞是 Linux 内核 legacy_parse_param 函数(fs/fs_context.c)中基于堆的缓冲区溢出,允许本地非特权用户将权限提升至 root。
原始漏洞利用来自 Crusaders of Rust。完整文章:https://www.willsroot.io/2022/01/cve-2022-0185.html
该漏洞是 legacy_parse_param() 内部边界检查中的整数下溢。当内部缓冲区 size 达到 4095 字节时,无符号减法发生回绕并绕过检查,从而在 kmalloc-4k slab 中造成无界堆溢出。
受影响的内核版本: Linux 5.1 – 5.15 修复版本: Linux 5.16+
| 文件 | 描述 |
|---|---|
exploit_fuse.c | 使用 FUSE + SYSVIPC 的 Ubuntu 本地权限提升漏洞利用 |
exploit_kctf.c | 使用管道 + ROP 链的 kCTF 容器逃逸 |
fakefuse.c / .h | 用于竞态条件的自定义 FUSE 文件系统 |
util.c / .h | 共享工具 |
libfuse/, libfuse3.a | 静态编译的 libfuse(无 dl_open) |
Makefile | 构建脚本 |
make
# 进入用户命名空间以获取 CAP_SYS_ADMIN
unshare -Urm
# 运行漏洞利用程序——将 /bin/bash 设为 SUID
./exploit_fuse
# 获取 root shell
bash -p
适用于 ≥ 5.7 的 Ubuntu 内核。请根据你的内核版本调整
exploit_fuse.c中的single_start和modprobe_path偏移量。
./exploit_kctf
约 50% 可靠性,针对 Kubernetes 1.22(内核 5.10)。
仅用于教育和研究目的。 请勿将其用于你不拥有或未经明确许可测试的系统。