文章目录
前言
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
版权归原作者 h领小白帽 所有, 如有侵权,请联系我们删除。