本仓库提供了CVE-2023-0386的概念验证: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
团队成员:Bǎnicǎ Dragoș-Marius 和 Borsos Matheas-Roland
视频链接: https://www.youtube.com/watch?v=Ikux1rjIYP0
本仓库包含针对 CVE-2023-0386 的 概念验证(PoC)利用代码,该漏洞是 Linux 内核 OverlayFS 子系统中的一个本地权限提升漏洞。
该漏洞允许 本地非特权用户 通过利用 OverlayFS 在 复制提升 操作中错误处理文件能力和所有权的问题,将权限提升至 root。PoC 演示了如何通过精心构造的 OverlayFS 设置,生成一个即使从 nosuid 挂载点复制后仍保留提升权限的可执行文件。
OverlayFS 是一种 联合文件系统,用于将多个目录树合并为单一统一视图。它广泛应用于:
OverlayFS 由以下部分组成:
当修改下层中的文件时,OverlayFS 执行 复制提升 操作:将文件复制到上层,然后在该处进行修改。
该漏洞在于 OverlayFS 在复制提升期间如何处理文件元数据,具体涉及:
CAP_SETUID)nosuid 挂载选项的交互在受影响的内核版本中:
nosuid 下层复制文件时 未能正确剥离能力。这打破了 nosuid 挂载可防止权限提升的安全假设。
CVE-2023-0386_POC/
├── exp.c # 主要利用逻辑
├── fuse.c # 用户空间文件系统辅助程序(FUSE)
├── getshell.c # 权限提升载荷
├── ovlcap/ # OverlayFS 能力测试工具
│ ├── Makefile
│ └── ...
├── Makefile # 顶层构建说明
└── README.md
受控文件系统设置
nosuid 下层。携带能力的二进制文件
触发复制提升
权限提升
gccmakelibfuse-dev(或等效包)libcap-dev(或等效包)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
启动两个终端,在第一个终端中输入
./fuse ./ovlcap/lower ./gc
在第二个终端中输入
./exp