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.

  1. Обновите кэш репозиториев:
sudo yum check-update

  1. Установите обновление для пакета polkit:
sudo yum update polkit

  1. Если вы используете дистрибутивы на базе Debian/Ubuntu:
sudo apt update && sudo apt install --only-upgrade polkitd

  1. Перезапустите службу polkit для применения изменений (или перезагрузите систему):
sudo systemctl restart polkit

Временные меры

Если немедленное обновление пакета невозможно, рекомендуется использовать следующие меры для снижения риска эксплуатации:

  1. Ограничьте доступ к системе для недоверенных пользователей и минимизируйте количество активных сессий.

  2. Временно остановите службу polkit (внимание: это может нарушить работу графических оболочек и системных сервисов, требующих авторизации):

sudo systemctl stop polkit

  1. Настройте аудит системы для отслеживания подозрительных попыток создания пользователей или изменения прав доступа через dbus-send.

  2. Используйте инструменты мониторинга (например, Auditd) для отслеживания вызовов методов org.freedesktop.Accounts.CreateUser.