
CVE-2017-16995(Ubuntuのローカル権限昇格の脆弱性)
Ubuntuは、デスクトップ用途を主としたオープンソースのGNU/Linuxオペレーティングシステムであり、Debian GNU/Linux に基づいています。最近、ホワイトハットの研究者が、Ubuntuの最新バージョン(Ubuntu 16.04)にローカル特権昇格の脆弱性が存在することを公表しました。脆弱性番号はCVE-2017-16995です。この脆弱性は、eBPF bpf(2)を呼び出すLinuxカーネルシステムに存在し、ユーザーが悪意のあるBPFプログラムを提供すると、eBPF検証モジュールが計算エラーを引き起こし、任意のメモリ読み書き問題が発生し、低権限ユーザーがこの脆弱性を利用して管理権限を取得できます。 この脆弱性は古いバージョンでは修正されていますが、最新バージョンでは依然として悪用可能であり、公式からはまだ関連パッチがリリースされておらず、脆弱性は0day状態です。
Linux Kernel Version 4.14-4.4 Ubuntu/Debian ディストリビューションのみ影響を受けます
高リスク
bearcat@ubuntu:/opt$ lsb_release -a
<br>No LSB modules are available.
<br>Distributor ID: Ubuntu
<br>Description: Ubuntu 16.04.4 LTS
<br>Release: 16.04
<br>Codename: xenial
<br>bearcat@ubuntu:/opt$ uname -a
<br>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
<br>bearcat@ubuntu:/opt$ id
<br>uid=1000(bearcat) gid=1000(bearcat) <br>groups=1000(bearcat),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
<br>bearcat@ubuntu:/opt$ ls
<br>exploit.c
<br>bearcat@ubuntu:/opt$ gcc exploit.c -o exploit
<br>bearcat@ubuntu:/opt$ ./exploit
<br>task_struct = ffff88003a0db800
<br>uidptr = ffff8800374b76c4
<br>spawning root shell
<br>root@ubuntu:/opt# id
<br>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)
<br>root@ubuntu:/opt#
現時点では明確なパッチアップグレード方法は提案されていませんが、カーネルパラメータを変更して一般ユーザーのbpf(2)システムコールの使用を制限することで緩和することを推奨します。
パラメータ「kernel.unprivileged_bpf_disabled = 1」を設定することで、bpf(2)呼び出しへのアクセスを制限し、この特権昇格を防ぎます。
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
Linux Kernel バージョンをアップグレードし、サーバーを再起動して有効にします:
この手順は環境構築の中で既に具体的な操作を説明しています。ユーザーはカーネルバージョンを変更するだけでOKです!
コードパッチ https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f