
Образовательный PoC для CVE-2021-4034, PwnKit, LPE через pkexec из polkit. Только авторизованное использование.
Доказательство концепции для PwnKit — локального повышения привилегий в pkexec из polkit. При установке по умолчанию любой непривилегированный локальный пользователь может получить root.
Уязвимые версии pkexec некорректно обрабатывают количество аргументов процесса. Это позволяет повторно внедрить контролируемые переменные окружения в среду pkexec, что в итоге приводит к запуску управляемого атакующим разделяемого объекта с правами root. Уязвимость была раскрыта 25 января 2022 года исследовательской командой Qualys и оценивается в 7,8 балла (высокий риск) по CVSS v3.1. Запись в NVD — CVE-2021-4034.
Практически все выпуски polkit с 2009 года были подвержены уязвимости до скоординированного исправления. Дистрибутивы выпустили исправленные пакеты в дату раскрытия или после неё, поэтому поддерживайте обновления поставщика актуальными.
Это образовательный справочник по хорошо документированной, публично раскрытой уязвимости. Я использую его для изучения ошибки обработки аргументов в pkexec, проверки статуса исправлений в авторизованных лабораториях и при оценках, а также для ведения заметок по обнаружению и устранению.
Запускайте это только на системах, которыми вы владеете или на тестирование которых у вас есть разрешение.
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
./cve-2021-4034-poc
На уязвимом хосте вы попадёте в root-оболочку. Проверено на Debian 10 buster и CentOS 7.
Обновите polkit и pkexec до исправленной версии вашего дистрибутива. Если вы не можете сразу установить исправление, удалите SUID-бит с помощью chmod 0755 на бинарном файле pkexec, учитывая, что вы теряете возможность делегирования привилегий через pkexec. Для обнаружения настройте оповещения о запусках pkexec с пустым argv или с подозрительным окружением, таким как GCONV_PATH, CHARSET или SHELL, непосредственно перед появлением root-оболочки.
Уязвимость была найдена и ответственно раскрыта исследовательской командой Qualys.
Консультация oss-security: https://seclists.org/oss-sec/2022/q1/80
Этот код опубликован только для изучения и авторизованного тестирования безопасности. Запуск его против систем, которыми вы не владеете и на тестирование которых у вас нет письменного разрешения, незаконен и может повлечь уголовную и гражданскую ответственность. Используйте его в собственных лабораториях или в рамках подписанного соглашения о проведении работ. Вы несёте ответственность за то, что делаете с ним.