CVE-2021-3560
Red Hat Polkit
2023-05-12
Red Hat Polkit contains an incorrect authorization vulnerability through the bypassing of credential checks for D-Bus requests, allowing for privilege escalation.
Технический анализ и план устранения
Суть уязвимости
CVE-2021-3560 — это логическая ошибка в службе polkit (ранее PolicyKit), которая позволяет локальному непривилегированному пользователю получить права суперпользователя (root).
Уязвимость возникает из-за некорректной обработки прерывания D-Bus запроса. Когда клиент отправляет запрос на выполнение действия через D-Bus и немедленно завершает соединение, polkit не может корректно определить идентификатор пользователя (UID) отправителя. В коде обработки ошибок это приводит к тому, что значение UID устанавливается в 0. Поскольку UID 0 принадлежит пользователю root, polkit ошибочно авторизует запрос, полагая, что его инициировал администратор, и выполняет привилегированное действие (например, создание нового пользователя с правами sudo).
Как исправить
Основным способом устранения уязвимости является обновление пакета polkit до актуальной версии, в которой исправлена логика проверки учетных данных D-Bus.
- Обновите кэш репозиториев:
sudo yum check-update
- Установите обновление для пакета polkit:
sudo yum update polkit
- Если вы используете дистрибутивы на базе Debian/Ubuntu:
sudo apt update && sudo apt install --only-upgrade polkitd
- Перезапустите службу polkit для применения изменений (или перезагрузите систему):
sudo systemctl restart polkit
Временные меры
Если немедленное обновление пакета невозможно, рекомендуется использовать следующие меры для снижения риска эксплуатации:
-
Ограничьте доступ к системе для недоверенных пользователей и минимизируйте количество активных сессий.
-
Временно остановите службу polkit (внимание: это может нарушить работу графических оболочек и системных сервисов, требующих авторизации):
sudo systemctl stop polkit
-
Настройте аудит системы для отслеживания подозрительных попыток создания пользователей или изменения прав доступа через
dbus-send. -
Используйте инструменты мониторинга (например, Auditd) для отслеживания вызовов методов
org.freedesktop.Accounts.CreateUser.