Ден Розенберг (Dan Rosenberg), консультант по безопасности компании Virtual Security Research, опубликовал в списке рассылки FullDisclosure код эксплоита, позволяющего локально получить привилегии суперпользователя в Linux. Эксплоит примечателен тем, что его работа основана на одновременном использовании трех, с виду незначительных, уязвимостей в Linux-ядре, подчеркивая, что сочетание нескольких факторов, по отдельности приводящих к краху ядра (DoS-уязвимости), могут привести к неожиданным последствиям.

В качестве основы для построения эксплоита используется обнаруженная несколько дней назад уязвимость CVE-2010-4258, позволяющая сохранить значение NULL по любому переданному пользователем указателю внутри адресного пространства ядра. Уязвимости CVE-2010-3849 и CVE-2010-3850 обеспечивают возможность разыменования NULL-указателя и используются в качестве вспомогательных методов для создания нужных условий эксплуатации первой уязвимости (вызов обработчика OOPS-событий), что в конечном итоге приводит к передаче управления коду злоумышленника. Практически, вспомогательные уязвимости CVE-2010-3849 и CVE-2010-3850 (разыменование указателя и активация необходимого для этого Econet-модуля) уже исправлены во многих дистрибутивах, но вместо них могут быть использованы любые подобные уязвимости, которые всплывают регулярно.

Эксплоит протестирован в системах Ubuntu 10.04 и 10.10 со штатными Linux-ядрами, но теоретически функционирует со всеми Linux-ядрами серии 2.6.x, включая последний тестовые выпуск ядра 2.6.37. Опубликованный код эксплоита оформлен в виде прототипа, намеренно модифицированного для защиты от необдуманного использования неискушенными обывателями (для его работы в RedHat, Slackware и Debian потребуется модификация, а для Ubuntu ранее было выпущено обновление с исправлением проблем CVE-2010-3849 и CVE-2010-385). Появление обновлений с исправлением уязвимости CVE-2010-4258 для различных Linux-дистрибутивов можно отследить на следующих страницах: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Debian, Ubuntu.

До момента выхода обновлений, для временной защиты достаточно использовать (уже включено по умолчанию в RHEL и CentOS):


echo 1 > /proc/sys/kernel/panic_on_oops


Источник: http://www.opennet.ru/opennews/art.shtml?num=28924