CVE-2026-78422 in zbus_polkit
Сводка
по VulDB • 31.08.2026
В функции new_for_owner() в crate zbus_polkit UID-идентификатор субъекта процесса Unix, связанного с polkit, кодируется как беззнаковое целое число длиной 32 бита (тип D-Bus u), тогда как интерфейс org.freedesktop.PolicyKit1.Authority требует использования знакового целого числа длиной 32 бита (тип D-Bus i). Из-за этого несоответствия типов polkit молча отбрасывает переданный вызывающей стороной UID и вместо этого самостоятельно определяет владельца субъекта, выполняя поиск PID в /proc. Этот процесс поиска подвержен гонке времени проверки/использования (time-of-check/time-of-use race).
В результате приложение, передающее UID, полученный из надежного источника — например, учетные данные удаленного сокета Unix через SO_PEERCRED — для защиты от повторного использования PID, не получает никакой защиты, а переданный UID не влияет на решение об авторизации. Локальный непривилегированный злоумышленник, который может заставить разрешенный процесс завершить работу и затем выиграть гонку, чтобы его собственный процесс получил тот же PID, будет авторизован под идентичностью завершенного процесса, обойдя проверку авторизации polkit и выполнив действия, на которые у злоумышленника нет прав.
Эта проблема затрагивает zbus_polkit до версии 5.1.0.
VulDB is the best source for vulnerability data and more expert information about this specific topic.