Исправлена ошибка семилетней давности make-me-root в сервисе Linux polkit

Уязвимость семилетней давности в повышении привилегий, которая таилась в нескольких дистрибутивах Linux, была исправлена на прошлой неделе путём скоординированного раскрытия информации.
Исправлена ошибка семилетней давности make-me-root в сервисе Linux polkit

Исправлена ​​ошибка семилетней давности make-me-root в сервисе Linux polkit. Фото: Pixabay

В сообщении в блоге в четверг исследователь безопасности GitHub Кевин Бэкхаус рассказал, как он обнаружил ошибку ( CVE-2021-3560 ) в службе под названием polkit, связанной с systemd, общей системой Linux и компонентом диспетчера служб.

Появившаяся в коммите bfa5036 семь лет назад и изначально поставляемая в версии 0.113 polkit, ошибка распространялась разными путями в разных дистрибутивах Linux. Например, она есть в версии Debian, на которой основаны другие дистрибутивы, такие как Ubuntu, пишет The Register.

Ранее известная как PolicyKit, polkit - это служба, которая оценивает, требуют ли определённые действия Linux более высокие привилегии, чем те, которые доступны в настоящее время. Это работает, если, например, вы пытаетесь создать новую учётную запись пользователя.

Бэкхаус говорит, что уязвимость на удивление легко использовать, требуя всего нескольких команд с использованием стандартных инструментов терминала, таких как bash, kill и dbus-send.

Исследователь безопасности GitHub Кевин Бэкхаус:

«Уязвимость запускается при запуске dbus-send команды, но при её уничтожении, polkit все ещё обрабатывает запрос»

Killing dbus-send- команда межпроцессного взаимодействия - в разгар запроса аутентификации вызывает ошибку, которая возникает из-за того, что polkit запрашивает UID соединения, которое больше не существует (потому что соединение было прервано).

Исследователь безопасности GitHub Кевин Бэкхаус:

«Фактически, polkit неправильно обрабатывает ошибку особенно неудачным способом: вместо того, чтобы отклонять запрос, он обрабатывает запрос так, как если бы он был получен от процесса с UID 0. Другими словами, он немедленно авторизует запрос, поскольку считает, что запрос исходит от корневого процесса»

Это происходит не все время, потому что запрос UID polkit к объекту dbus-daemon выполняется несколько раз по разным путям кода. Обычно эти пути кода обрабатывают ошибку правильно, но один путь кода уязвим, и если отключение происходит, когда этот путь кода активен, то происходит повышение привилегий. Все дело во времени, которое непредсказуемо меняется, потому что задействовано несколько процессов.

Бэкхаус полагает, что периодический характер ошибки является причиной того, что она оставалась незамеченной в течение семи лет.

Ошибка содержится в системах Linux с установленной версией polkit 0.113 или более поздней, например Debian (нестабильная) , RHEL 8 , Fedora 21+ и Ubuntu 20.04.

Startpack подготовил список, в который входят облачные сервисы для разработки программного обеспечения и совместной работы. Среды разработки и конструкторы для создания приложений, сайтов, чат-ботов и интернет-магазинов. Решения для планирования и распределения ресурсов при работе над большими проектами. Платформы для создания прототипов, общения между дизайнерами и программистами, автоматизации тестирования и проверки кода на ошибки. Система контроля версий поможет хранить старые версии ПО и наладить выпуск стабильных релизов.

Статьи по теме

Больше интересного

Актуальное

Chrome прекратил отображать упрощённый адрес сайтов
Загадочная вредоносная программа похитила 26 миллионов паролей с миллионов компьютеров
Из-за ошибки Microsoft Teams требует от пользователей выбрать сертификат
Ещё…