zl程序教程

您现在的位置是:首页 >  系统

当前栏目

【权限提升】Linux Kernel ebpf 提权漏洞(CVE-2022-23222)

Linux漏洞权限 提升 2022 CVE Kernel 提权
2023-09-11 14:17:08 时间


前言

CVE-2022-23222 Linux Kernel ebpf权限提升漏洞


一、漏洞描述

eBPF(extended Berkeley Packet Filter)是一种可以在 Linux 内核中运行用户编写的程序,而不需要修改内核代码或加载内核模块的技术。简单来说eBPF 让 Linux 内核变得可编程化了。由于内核在执行用户提供的 eBPF 程序前缺乏适当的验证,攻击者可以利用这个漏洞获取 root 权限。该漏洞是由于 Linux 内核的 BPF 验证器存在一个空指针漏洞,没有对*_OR_NULL 指针类型进行限制,允许这些类型进行指针运算。攻击者可
利用该漏洞在获得低权限的情况下,构造恶意数据执行空指针引用攻击,最终获取服务器 root 权限。

二、漏洞影响版本

5.8 ≤ Linux Kernel ≤ 5.16(Linux Kernel 5.10.92,5.15.15,5.16.1 不受影
响)

三、漏洞复现

使用本地Kali进行测试

先检测目标系统是否存在漏洞

–查看系统内核版本–
uname -a
在这里插入图片描述
确认在漏洞影响范围内

–查看是否允许低权限用户调用bpf–
cat /proc/sys/kernel/unprivileged_bpf_disabled
在这里插入图片描述
值为"0" 表示允许非特权用户调用 bpf ,则可以利用
值为"1" 表示禁止非特权用户调用 bpf 且该值不可再修改,只能重启后修改
值为"2" 表示禁止非特权用户调用 bpf 可以再次修改为 0 或 1

通过如上验证得知存在该漏洞,那就可以直接提权了!!!

下载利用脚本:https://github.com/tr3ee/CVE-2022-23222
在这里插入图片描述
直接编译 make 然后运行 ./exploit
在这里插入图片描述
如果运行中出现如上所示报错,直接去修改exploit.c文件,将此段代码注释
在这里插入图片描述
保存->退出! 重新编译
再次利用,发现提权成功!
在这里插入图片描述

四、漏洞修复

升级Linux 内核至最新版

也可通过执行如下命令禁止非 root 用户使用 ebpf 的方式进行临时缓解

sudo sysctl kernel.unprivileged_bpf_disabled=2

参考链接:https://mp.weixin.qq.com/s/QJz9so27ao4rmT1Sbp74KA