Категория: GNU/Linux, Security


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

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

Эксплойт протестирован в системах 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.

Источник
Код эксплойта