Обнаружена локальная root-уязвимость, затрагивающая все Linux-ядра 2.6.x
Другими словами, любое, имеющие уязвимости, непривилегированное графическое приложение в результате атаки может обойти все механизмы защиты безопасности Linux-ядра и скомпрометировать систему целиком. Атака может быть произведена даже из изолированного окружения системы безопасности SELinux, которая не спасает от данной уязвимости. Например, злоумышленник может воспользоваться уязвимостью в PDF-просмотрщике, запущенном в chroot или под контролем SELinux, и добившись от пользователя открытия специально оформленного документа, получить доступ к машине с правами суперпользователя. Ошибка, судя по всему, существует уже несколько лет практически во всех ядрах серии 2.6.x.
Суть атаки состоит в том, что графическое приложение искусственно практически полностью потребляет адресное пространство X-сервера с помощью расширения MIT-SHM, затем создаёт разделяемый сегмент памяти "S", то есть заставляя X-сервер использовать этот сегмент. Сегмент "S", однако, будет находиться близко над исполняемым стеком. Затем атакующий инструктирует X-сервер с тем, чтобы последний стал исполнять рекурсивную функцию, что приводит к расширению стека, а указатель стека смещается в сторону сегмента "S" на непродолжительный промежуток времени. После чего, атакующий осуществляет запись в область памяти "S", что приводит к замене смещения в стеке и позволяет выполнить произвольный код.
Без обновления ядра данную проблему можно решить несколькими способами. Во-первых, можно выключить поддержку MIT-SHM в X-сервере:
Section "Extensions" Option "MIT-SHM" "disable" EndSection
Во-вторых, можно создать wrapper для запуска X-сервера с указанием RLIMIT_AS, что ограничит регион памяти, доступной для X-сервера и поможет избежать атаки. Однако, этот способ не является надёжным.
Данная проблема решена в выпущенных на днях обновлениях Linux-ядра 2.6.32.19, 2.6.34.4, 2.6.35.2, а также устранена в ядре RedHat Enterprise Linux. Примечательно, что данная уязвимость была исправлена молча, без акцентирования о критичности проблемы и без отметки об отношении исправления к безопасности в списке изменений. Более подробно об уязвимости можно прочитать в данном отчете (PDF, 100 Кб).
Дополнение: Оказывается, ещё в 2004 году разработчики из SUSE предложили патч для этой проблемы, но по неизвестным причинам он не был принят в ядро и вскоре про него забыли. SUSE Linux Enterprise 9/10/11 и openSUSE 11.1-11.3 не подвержены данной проблеме.
Источник: http://www.opennet.ru/opennews/art.shtml?num=27658
|
0 | Tweet | Нравится |
|