
Linux カーネルバージョン 4.14 - 4.4 (Ubuntu && Debian)
この脆弱性はLinuxカーネルに搭載されているeBPF bpf(2)システムコールに存在し、ユーザーが悪意のあるBPFプログラムを提供することでeBPF検証モジュールの計算エラーを引き起こし、任意のメモリ読み書き問題を引き起こします。非特権ユーザーはこの脆弱性を利用して権限昇格を得ることができます。脆弱性はGoogle Project Zeroによって発見されました。
CVE-2017-16995
高リスク
bearcat@ubuntu:/opt$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
bearcat@ubuntu:/opt$ uname -a
Linux ubuntu 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
bearcat@ubuntu:/opt$ id
uid=1000(bearcat) gid=1000(bearcat) groups=1000(bearcat),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
bearcat@ubuntu:/opt$ ls
exploit.c
bearcat@ubuntu:/opt$ gcc exploit.c -o exploit
bearcat@ubuntu:/opt$ ./exploit
task_struct = ffff88003a0db800
uidptr = ffff8800374b76c4
spawning root shell
root@ubuntu:/opt# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(bearcat)
root@ubuntu:/opt#
1.現時点では明確なパッチアップグレード案はありません。リスクを評価した上で、カーネルパラメータを変更して一般ユーザーがbpf(2)システムコールを使用できないように制限することを推奨します:
パラメータ「kernel.unprivileged_bpf_disabled = 1」を設定し、bpf(2)呼び出しへのアクセスを制限することでこの権限昇格を防ぎます。
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
2.関連コードパッチ https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f
http://cyseclabs.com/exploits/upstream44.c
https://security-tracker.debian.org/tracker/CVE-2017-16995
https://www.securityfocus.com/bid/102288
https://bugs.chromium.org/p/project-zero/issues/detail?id=1454&desc=
https://cert.360.cn/warning/detail?id=119f849891f2a1b5deef65f99923ab5a
https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f