В ядре Linux выявлена критическая уязвимость (CVE-2014-0038), позволяющая локальному пользователю повысить свои привилегии в системе и выполнить код с правами ядра. Проблема проявляется только при сборке ядра с поддержкой x32 ABI, позволяющего использовать на 64-разрядных системах 32-разрядную модель адресации памяти.

Уязвимость проявляется на системах с 64-разрядым ядром Linux начиная с выпуска 3.4, собранным с опцией CONFIG_X86_X32 (не путать с CONFIG_X86_32: проблеме не подвержены конфигурации в которых 32-разрядные приложения выполняются в системе с 64-разрядным ядром, при условии что ядро собрано без поддержки x32 ABI, а также 32-разрядные сборки ядра). Эксплуатация уязвимости возможна даже из программ под x86_64 и i?86, которые сами по себе x32 ABI не используют; обязательным условием является только включенная поддержка X32 ABI в уязвимой версии ядра.

В частности, уязвимость присутствует в пакетах с ядром 3.11 и 3.8 из состава Ubuntu 13.10 и 12.04 LTS, которые собраны с ограниченной поддержкой x32 ABI. Обновление для пользователей Ubuntu уже выпущены. Последние актуальные версии ванильного ядра Linux 3.10.28, 3.12.9 и 3.13.1 подвержены уязвимости. Обновления для выпусков ядра Linux пока недоступны, но уже подготовлен патч. Для проверки своих систем на наличие уязвимости подготовлен прототип эксплоита (на уязвимых системах обычно приводит к появлению Oops в сообщениях ядра, см. выдачу команды dmesg). Проблема также присутствует в штатном ядре некоторых версий openSUSE и Arch Linux. Штатное ядро из Debian GNU/Linux, Fedora, RHEL и ALT Linux проблеме не подвержено.

Проверить собрано ли ядро с опцией CONFIG_X86_X32 в большинстве дистрибутивов можно при помощи команд:


grep CONFIG_X86_X32 /boot/config-`uname -r`
zgrep CONFIG_X86_X32 /proc/config.gz

Дополнение: Опубликован эксплоит для получения root-доступа, работающий в Ubuntu 13.10.

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