Семилетний баг в Polkit, позволяющий получить права root
Участник GitHub Security Lab Kevin Backhouse обнаружил уязвимость в Polkit, которая впервые появилась семь лет назад в коммите bfa5036 и с версией 0.113 попала в некоторые дистрибутивы. Она позволяет непривилегированному локальному пользователю получить права root в системе, приложив для этого минимальные усилия. Уязвимости подвержены любые дистрибутивы с установленной версией Polkit 0.113 (или более поздней). Например, такие популярные, как RHEL 8 и Ubuntu 20.04. Уязвимость была устранена 3 июня 2021 года.
Как пишет Kevin Backhouse, уязвимость очень просто эксплуатируется, для этого достаточно простых инструментов: bash
, kill
, и dbus-send
. Кроме них, для своей статьи (PoC exploit) он так же использовал accountsservice
и gnome-control-center
, которые можно найти на многих системах с GUI. Следует заметить, что accountsservice
и gnome-control-center
не содержат уязвимость и являются просто клиентами для Polkit.
Собственно уязвимость активируется с помощью команды dbus-send
(т.е. простой отправки сообщения через шину D-Bus), которую нужно завершить во время, пока Polkit ещё обрабатывает запрос. Теоретически, можно нажать Ctrl
+ C
на клавиатуре в нужный момент, однако Kevin Backhouse не смог продемонстрировать именно такой вариант.
( читать дальше... )
>>> Подробности