The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В systemd-journald выявлены три уязвимости, позволяющие полу..."
Отправлено opennews, 10-Янв-19 11:20 
В компоненте systemd-journald, отвечающем за ведение логов в systemd,  выявлены (https://seclists.org/oss-sec/2019/q1/54) три уязвимости, позволяющие непривилегированному атакующему повысить свои привилегии в системе и выполнить код с правами root. Уязвимости проявляются во всех дистрибутивах, использующих systemd, за исключением SUSE Linux Enterprise 15, openSUSE Leap 15.0 и Fedora
28/29, компоненты systemd в которых собраны с включением в GCC защиты "-fstack-clash-protection".

Уязвимости CVE-2018-16864 (https://security-tracker.debian.org/tracker/CVE-2018-16864) и CVE-2018-16865 (https://security-tracker.debian.org/tracker/CVE-2018-16865) позволяют создать условия для записи данных вне границ выделенного блока памяти, а уязвимость CVE-2018-16866 (https://security-tracker.debian.org/tracker/CVE-2018-16866) даёт возможность прочитать содержимое  внешних областей памяти. Исследователями подготовлен рабочий прототип эксплоита, который при помощи уязвимостей CVE-2018-16865 и CVE-2018-16866 позволяет получить права root после примерно 10 минут атаки на системах с архитектурой i386  и 70 минут на системах amd64.  Работа эксплоита проверена в Debian 9.5.


При написании эксплоита использована техника  Stack Сlash (https://www.opennet.ru/opennews/art.shtml?num=46724), суть которой в создании условий  когда содержимое переполненной кучи оказывается в области стека или, наоборот, стек может переписать область кучи, что проявляется в ситуациях, когда стек и куча размещаются смежно и прилегают друг к другу (область стека следует сразу за памятью, выделенную под кучу). Предложенный эксплоит подтверждает предположение (https://grsecurity.net/an_ancient_kernel_hole_is_not_closed.... что защиты от атак класса Stack Сlash на уровне ядра Linux недостаточно. При этом атака  успешно блокируется при пересборке в GCC с включенной опцией "-fstack-clash-protection".

Уязвимость CVE-2018-16864 была обнаружена после разбора ситуации, когда передача приложениям, сохраняющим данные в лог через вызов syslog(), большого числа аргументов командной строки (несколько мегабайт) приводит к краху процесса  systemd-journald. Анализ показал, что манипулируя строкой с аргументами командной строки можно осуществить управляемое наложение хвоста кучи на начало стека, но для успешной атаки требуется обойти применяемую в ядре технику защиты "stack guard-page", суть которой в подстановке граничных страниц памяти, обращение к которым приводит к генерации исключения (page-fault).


Для обхода данной защиты из параллельно выполняемого потока systemd-journald было инициировано состояния гонки (https://ru.wikipedia.org/wiki/%D0%A1%D0%... (race condition), позволяющее захватить управление до краха процесса из-за записи в страницу памяти, доступную только для чтения. В процессе изучения первой уязвимости всплыла ещё одна проблема CVE-2018-16865, позволяющая создать похожие условия наложения стека и кучи через запись очень большого сообщения  в файл /run/systemd/journal/socket. Третья уязвимость CVE-2018-16866 проявляется если отправить syslog-сообщение c последним символом ":". Из-за ошибки разбора строки следующий за ним символ конца строки '\0' будет отброшен и в логе окажется кусок буфера за пределами '\0', что позволяет узнать адрес стека или mmap.


Уязвимость CVE-2018-16864 проявляется (https://github.com/systemd/systemd/commit/ae018d9bc900d6355d... с апреля 2013 года (появилась в systemd 203), но пригодна для эксплуатации только после изменения (https://github.com/systemd/systemd/commit/ac2e41f5103ce2c679... внесённого в systemd 230 в феврале 2016 года.  Уязвимость CVE-2018-16865 проявляется (https://github.com/systemd/systemd/commit/cf244689e9d1ab5008... с декабря 2011 года (systemd 38) и доступна (https://github.com/systemd/systemd/commit/c4aa09b06f835c91ce... для эксплуатации с апреля 2013 года (systemd 201). Проблемы CVE-2018-16864 и CVE-2018-16865 устранены (https://github.com/systemd/systemd/pull/11374) несколько часов назад в master-ветке systemd.
Уязвимость CVE-2018-16866 появилась (https://github.com/systemd/systemd/commit/ec5ff4445cca6a1d78... в июне 2015 года (systemd 221) и устранена (https://github.com/systemd/systemd/commit/a6aadf4ae0bae185dc... в августе 2018 года (не проявляется в systemd 240).


URL: https://seclists.org/oss-sec/2019/q1/54
Новость: https://www.opennet.ru/opennews/art.shtml?num=49931

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру