漏洞说明
eBPF(extended Berkeley Packet Filter)是一种可以在 Linux 内核中运行用 户编写的程序,而不需要修改内核代码或加载内核模块的技术。简单来说 eBPF 让 Linux 内核变得可编程化了。由于内核在执行用户提供的 eBPF 程 序前缺乏适当的验证,攻击者可以利用这个漏洞获取 root 权限。该漏洞 是由于 Linux 内核的 BPF 验证器存在一个空指针漏洞,没有对 *_OR_NULL 指针类型进行限制,允许这些类型进行指针运算。攻击者可 利用该漏洞在获得低权限的情况下,构造恶意数据执行空指针引用攻击, 最终获取服务器 root 权限。
漏洞影响范围
影响版本:Linux kernel 5.8 - 5.16
不受影响版本:Linux kernel 5.10.92, 5.15.15, 5.16.1
漏洞复现
uname -a #查看系统内核版本
#查看是否允许低权限用户调用
cat /proc/sys/kernel/unprivileged_bpf_disabled
值为0表示允许非特权用户调用bpf
值为1表示禁止非特权用户调用bpf且该值不可再修改,只能重启后修改
值为2表示禁止非特权用户调用bpf,可以再次修改为0或1
git clone https://github.com/tr3ee/CVE-2022-23222.git
cd CVE-2022-23222
make
./exploit
执行过程报此错时,修改exploit.c文件,将如下代码注释,后重新编译执行
修复方案
1、升级内核至安全版本
2、缓解措施:禁止非特权用户执行BPF程序,即使重启后仍然能够防御成功
echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
原文始发于微信公众号(渗透笔记):Linux提权(九)CVE-2022-23222 Linux Kernel ebpf 权限提升漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论