Раскрыты подробности о root-уязвимости в ядре Linux, атакованной на Pwn2Own
Опубликованы сведения о 0-day уязвимости в ядре Linux (CVE-2017–7184), которая была использована на соревновании Pwn2Own 2017 для демонстрации атаки на Ubuntu Linux, позволившей локальному пользователю выполнить код с правами root.
Уязвимость вызвана ошибкой во фреймворке преобразования сетевых пакетов XFRM, применяемом для реализации IPsec. В функции xfrm_replay_verify_len (), вызываемой из xfrm_new_ae (), не выполнялась проверка заданного пользователем параметра replay_window, записываемого в буфер состояний. Манипулируя содержимым, связанным с данным параметром, атакующий может организовать запись и чтение данных в областях памяти ядра за пределами выделенного буфера.
Несмотря на то, что эксплуатация была продемонстрирована в Ubuntu, проблема не специфична для данного дистрибутива и проявляется в любых других системах на базе ядра Linux. Как и в нескольких предыдущих root-уязвимостях в ядре, проблема может быть эксплуатирована только при включении пространств имён для идентификаторов пользователей (user namespaces). Например, пакеты с ядром для Ubuntu и Fedora уязвимы по умолчанию, а ядро Debian и RHEL/CentOS 7 может быть атаковано только после явной активации поддержки «user namespaces» (sysctl kernel.unprivileged_userns_clone=1). Атака также затруднена на старые системы с версиями ядра меньше 3.9 из-за в них отсутствия поддержки «user namespaces».
При проведении атаки «user namespaces» используется для получения обычным пользователем прав CAP_NET_ADMIN, необходимых для настройки параметров XFRM. Так как создаваемое через «user namespaces» изолированное окружение и основная система обслуживаются одним ядром Linux, то эксплуатация уязвимости в ядре из контейнера позволяет обойти ограничения контейнерной изоляции и получить привилегированный доступ к основной системе.
Для ядра Linux исправление доступно в виде патчей. Обновления пакетов пока выпущены только для Ubuntu, openSUSE, SUSE Linux Enterprise 12. Проблема остаётся неисправленной в Fedora, Debian и CentOS/RHEL 7. Уязвимость не затрагивает SLE 11, RHEL 5 и RHEL 6.
© OpenNet