一、漏洞概述
Ubuntu 16.04 版本且unprivileged_bpf_disable 权限没有关闭的情况下就会存在 提权漏洞
查看方式:
1.cat /proc/version
查看系统版本
2.查看是否存在unprivileged_bpf_disable文件,如果存在该文件,查看文件内容是否为1,若不是1,则存在漏洞
二、漏洞验证
1.下载poc文件upstream44.c
下载地址:http://cyseclabs.com/pub/upstream44.c
或者使用github上的poc : https://github.com/iBearcat/CVE-2017-16995
2.编译生成可执行文件,并赋予可执行权限
1 | gcc -o upstream upstream.c |
3.在普通用户界面下,执行upstream程序,就会直接变成root用户
三、防御方案
1.目前的防御方式是启用 unprivileged_bpf_disable 功能
echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
2.启用上述功能后,再次执行upstream可以发现提权失败