
C-Exploit für CVE-2017-16995, eine lokale Privilegieneskalation im Linux-Kernel über den eBPF-bpf(2)-Syscall, der auf Ubuntu/Debian-Systeme mit Kernelversionen 4.4-4.14 abzielt.
Ubuntu ist ein quelloffenes GNU/Linux-Betriebssystem, das hauptsächlich für den Desktop-Einsatz konzipiert ist und auf Debian GNU/Linux basiert. In letzter Zeit haben White-Hat-Hacker eine lokale Privilegienausweitung in der neuesten Version von Ubuntu (Ubuntu 16.04) aufgedeckt, mit der CVE-ID CVE-2017-16995. Die Schwachstelle existiert im Linux-Kernel-System, das eBPF bpf(2) aufruft. Wenn ein Benutzer ein bösartiges BPF-Programm bereitstellt, führt dies zu einem Berechnungsfehler im eBPF-Validierungsmodul, was zu beliebigen Speicher-Lese-/Schreibproblemen führt. Ein Benutzer mit niedrigen Rechten kann diese Schwachstelle ausnutzen, um Administratorrechte zu erlangen. Diese Schwachstelle wurde in älteren Versionen behoben, ist jedoch in der neuesten Version immer noch ausnutzbar. Der offizielle Patch wurde noch nicht veröffentlicht, die Schwachstelle befindet sich im 0-Day-Zustand.
Linux Kernel Version 4.14-4.4 Betrifft nur Ubuntu/Debian-Distributionen
Hoch
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#
Derzeit gibt es noch keinen klaren Patch-Upgrade-Plan, aber es wird empfohlen, dass Benutzer den Zugriff normaler Benutzer auf den bpf(2)-Systemaufruf durch Änderung des Kernel-Parameters einschränken, um die Auswirkungen zu mildern:
Setzen Sie den Parameter "kernel.unprivileged_bpf_disabled = 1", um diese Privilegienausweitung zu verhindern, indem der Zugriff auf den bpf(2)-Aufruf eingeschränkt wird.
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
Aktualisieren Sie die Linux-Kernel-Version, die nach einem Neustart des Servers wirksam wird:
Dieser Schritt wurde bereits bei der Umgebungseinrichtung beschrieben. Benutzer müssen nur die Kernel-Version ändern!
Code-Patch https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f