Linux: дыра в безопасности ядраНедавно разработчики компании Linux обнаружили в своем ядре опасную «дырку» – root-уязвимость. Эта проблема появляется с ядра 2.6.39, предыдущие версии чистые. Благодаря этой уязвимости, хакер может, подключившись по сети, изменить или выполнить код с правами root (администратора). Правда, подобная процедура может быть произведена только при наличии у злоумышленника программы SUID root. Например, это программа /bin/su.

Кстати, эта же уязвимость проявляет себя в ядре RHEL 6. Начинается она с 2.6.32-220.el6, а заканчивается на 2.6.32-220.4.1, где уязвимость закрыта. Root-уязвимость получила порядковый номер CVE-2012-0056.

Уязвимость возникла в результате ошибки при реализации прямого доступа к памяти процесса – proc-интерфейс. В ядрах моложе 2.6.39 интерфейс доступа был только для чтения, но в версиях старше ограничения доступа к /proc/pid/mem были сняты и процесс стал доступен для записи. После выяснилось, что проверка была некорректной, и любой локальный пользователь может получить права администратора во всех ядрах, начиная с 2.6.39, плюс RHEL 6.

Информацию о «дырке» в заборе разработчики Linux получили от Juri Aedla.

Если для вас еще нет обновлений, то временно решить возникшую проблему можно путем запрета для всех пользователей доступа к программам SUID/SGID. Для Ubuntu, Debian и Red Hat можно с помощью systemtap решить данную проблему. К сожалению, почти все недавно выпущенные дистрибутивы попадают в зону риска. К ним относятся Fedora 16, Ubuntu 11.10, OpenSUSE 12.1 и некоторые другие. Отследить возможность обновить дистрибутив можно на официальных сайтах сборок.

Между тем, сохраняется опасность и для более старых версий ядра. При присутствии root-уязвимости есть риск возможности чтения приватных данных (паролей, ключей, подписей).

На сегодняшний день устранена проблема с Ubuntu 11.10 (для нее уже вышло обновление) и предложено решение по Android и RHEL 6