Бесплатно Экспресс-аудит сайта:

11.02.2020

Уязвимость в systemd позволяет выполнить код с повышенными правами

В подсистеме инициализации Linux systemd обнаружена уязвимость (CVE-2020-1712). Ее эксплуатация позволяет злоумышленнику выполнить код с повышенными привилегиями путем отправки специально сформированного запроса по шине DBus.

Проблема представляет собой уязвимость использования после освобождения (use-after-free), которая возникает при асинхронном выполнении запросов к Polkit-библиотеке во время обработки DBus-сообщений. Некоторые DBus-интерфейсы используют кэш для хранения объектов в течение короткого периода времени и очищают его, как только шина снова находится в состоянии ожидания. Но если DBus-метод использует bus_verify_polkit_async (), ему может понадобиться некоторое время, пока действие в Polkit-библиотеке не будет завершено. Когда это произойдет, снова будет вызван обработчик метода с ранее выделенными пользовательскими данными. Если запрос к Polkit занимает слишком много времени, очистка кэша освобождает хранимые объекты перед повторным вызовом метода, вызывая уязвимость использования после освобождения.

Уязвимость может быть проэксплуатирована через сервис systemd-machined, предоставляющий DBus API org.freedesktop.machine1.Image.Clone. Интерфейс org.freedesktop.machine1.Image.Clone доступен всем непривилегированным пользователям системы, которые могут инициировать сбой в работе systemd или потенциально добиться выполнения кода с правами суперпользователя.

Данная проблема исправлена в тестовом выпуске systemd 245-rc1. Уязвимость устранена в дистрибутивах Ubuntu , Fedora , RHEL , CentOS , SUSE/openSUSE и ROSA .