
Ubuntu — это открытая операционная система GNU/Linux, ориентированная на настольные приложения, основанная на Debian GNU/Linux. Недавно белые хакеры обнаружили в последней версии Ubuntu (Ubuntu 16.04) локальную уязвимость повышения привилегий, номер уязвимости — CVE-2017-16995. Уязвимость присутствует в подсистеме ядра Linux, вызывающей eBPF bpf(2): когда пользователь предоставляет вредоносную программу 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 — изменения вступят в силу после перезагрузки сервера:
Конкретные действия уже были описаны в разделе о настройке окружения; пользователю достаточно лишь изменить версию ядра!
Патч https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f