Специалисты из американской компании Qualys, занимающейся облачной безопасностью и сопутствующими услугами, обнаружили уязвимость, которая затрагивает все дистрибутивы Linux. Уязвимость была обнаружена в компоненте Polkit, также известном как PolicyKit.
Компонент PolicyKit используется для предоставления непривилегированным процессам возможности выполнения действий, которые требуют прав администратора. В состав PolicyKit входит утилита pkexec, которая позволяет авторизированным пользователям запускать программы от имени другого пользователя, включая root-пользователя.
Обнаруженная уязвимость позволяет непривилегированному пользователю получить привилегии root в системе. Сотрудники Qualys разработали эксплойт, с помощью которого смогли получить полные root-привилегии на стандартных установках дистрибутивов Ubuntu, Debian, Fedora и CentOS. Другие дистрибутивы, вероятно, также подвержены данной уязвимости.
Уязвимости был присвоен номер: CVE-2021-4034.
Принцип «взлома» основан на том, что при запуске утилиты pkexec не выполняется проверка счетчика количества аргументов командной строки (argc). В Linux можно выполнить команду pkexec без аргументов, используя системный вызов execve().
После такого вызова, pkexec попытается выполнить программу с правами суперпользователя, пытаясь получить название программы (команды) из первого аргумента командной строки (argv[1]), который на самом деле не был передан pkexec. В результате pkexec будет читать содержимое аргумента из области памяти, в которой размещаются переменные окружения, так как за массивом аргументов argv следует массив переменных окружения envp. Злоумышленник может определенным образом изменить соответствующую переменную окружения, что в результате позволит ему выполнить свой процесс с правами root-пользователя.
В целях безопасности сотрудники сотрудники Qualys не стали выкладывать свой эксплойт в общий доступ, так как уязвимость очень легко воспроизвести.
Примечательно, что данная уязвимость существует уже более 12 лет и затрагивает все версии pkexec, начиная с первой версии, которая вышла в мае 2009 года.
На сегодняшний день почти все популярные дистрибутивы уже подготовили патчи с устранением данной уязвимости. Если патч для вашего дистрибутива пока не готов, то в качестве временного решения можно удалить SUID-бит из pkexec, выполнив команду:
chmod 0755 /usr/bin/pkexec
Комментарии
10:15
;-)
16:17
18:40
11:31
Я бы не обратил внимание на то что у меня в сорсах неправильно записана секьюрити репа.
Думал, что обновы безопасности не приходят, а на самом деле это я к ним не прихожу.
Если у кого такая же проблема, вот правильная репа.
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
11:51
16:18
17:05
https://ibb.co/PwVrbBK
19:08
Спасибо, познавательно. Кое-что возьму на вооружение.
Но я имел в виду 'deb http://security.debian.org/debian-security bullseye-security main contrib non-free'
19:21
16:54
19:32
21:20
03:36