
CVE-2017-16995(Ubuntu-Schwachstelle zur lokalen Rechteausweitung)
Ubuntu ist ein quelloffenes GNU/Linux-Betriebssystem, das sich hauptsächlich an Desktop-Anwender richtet und auf Debian GNU/Linux basiert. Kürzlich meldeten White-Hat-Hacker eine lokale Privilegienausweitung in der neuesten Version von Ubuntu (Ubuntu 16.04), die unter der Nummer CVE-2017-16995 geführt wird. Die Schwachstelle besteht im Linux-Kernel-System, das den eBPF bpf(2)-Aufruf verwendet. Wenn ein Benutzer ein bösartiges BPF-Programm bereitstellt, verursacht das eBPF-Validierungsmodul einen Berechnungsfehler, der zu beliebigem Speicherlesen und -schreiben führt. Ein Benutzer mit niedrigen Rechten kann diese Schwachstelle nutzen, um Administratorrechte zu erlangen. Die Schwachstelle wurde in älteren Versionen behoben, ist jedoch in der neuesten Version weiterhin ausnutzbar. Offizielle Patches wurden noch nicht veröffentlicht, die Schwachstelle befindet sich im 0Day-Status.
Linux-Kernel Version 4.14-4.4 Nur Ubuntu/Debian-Distributionen betroffen
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 eindeutigen Patchvorschlag. Es wird jedoch empfohlen, den Zugriff normaler Benutzer auf den bpf(2)-Systemaufruf durch Änderung des Kernel-Parameters abzuschwächen:
Setzen Sie den Parameter „kernel.unprivileged_bpf_disabled = 1“, um die Privilegienausweitung zu verhindern, indem Sie den Zugriff auf den bpf(2)-Aufruf einschränken.
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
Aktualisieren Sie die Linux-Kernel-Version, danach ist ein Neustart des Servers erforderlich:
Dieser Schritt wurde bereits während der Umgebungseinrichtung beschrieben. Der Benutzer muss lediglich die Kernel-Version ändern!
Code-Patch https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f