В ядре Linux обнаружена ранее неизвестная 0-day уязвимость (CVE-2013-2094), позволяющая получить root-доступ произвольному пользователю. Проблему усложняет то, что ошибка существовала на протяжении последних 2-3 лет и присутствует во всех ядрах, начиная с 2.6.37 и включая 3.8.8 (ядра 3.9.x проблеме не подвержены).
Уязвимость вызвана ошибкой в коде подсистемы PERF_EVENTS, которая должна быть активирована для успешной эксплуатации уязвимости (в большинстве дистрибутивов ядро собрано поддержкой PERF_EVENTS). Пользователи RHEL 6 и CentOS 6, несмотря на использование ядра 2.6.32, не застрахованы от данной ошибки - проблемный код был успешно бэкпортирван Red Hat в пакет с ядром, поставляемом в RHEL.
Патч с устранением проблемы был принят в состав ядра 3.8.9 в апреле, без уведомления о том, что он связан с устранением уязвимости. В дистрибутивах уязвимость пока остаётся неисправленной. Статус выхода исправлений для популярных систем можно отследить на следующих страницах: Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Ubuntu, Debian.
Эксплоит уже доступен публично:
bash-4.1# gcc -O2 exploit.c
bash-4.1# chmod 777 a.out
bash-4.1# su nobody -s /bin/bash
bash-4.1$ id
uid=99(nobody) gid=99(nobody) groups=99(nobody)
bash-4.1$ cd /
bash-4.1$ ls
a.out bin boot dev etc exploit.c home lib lib64 media....
bash-4.1$ ./a.out
2.6.37-3.x x86_64
sh-4.1# id
uid=0(root) gid=0(root) groups=0(root),99(nobody)
Уязвимость вызвана ошибкой в коде подсистемы PERF_EVENTS, которая должна быть активирована для успешной эксплуатации уязвимости (в большинстве дистрибутивов ядро собрано поддержкой PERF_EVENTS). Пользователи RHEL 6 и CentOS 6, несмотря на использование ядра 2.6.32, не застрахованы от данной ошибки - проблемный код был успешно бэкпортирван Red Hat в пакет с ядром, поставляемом в RHEL.
Патч с устранением проблемы был принят в состав ядра 3.8.9 в апреле, без уведомления о том, что он связан с устранением уязвимости. В дистрибутивах уязвимость пока остаётся неисправленной. Статус выхода исправлений для популярных систем можно отследить на следующих страницах: Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Ubuntu, Debian.
Эксплоит уже доступен публично:
bash-4.1# gcc -O2 exploit.c
bash-4.1# chmod 777 a.out
bash-4.1# su nobody -s /bin/bash
bash-4.1$ id
uid=99(nobody) gid=99(nobody) groups=99(nobody)
bash-4.1$ cd /
bash-4.1$ ls
a.out bin boot dev etc exploit.c home lib lib64 media....
bash-4.1$ ./a.out
2.6.37-3.x x86_64
sh-4.1# id
uid=0(root) gid=0(root) groups=0(root),99(nobody)