The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость в Polkit, позволяющая повысить свои привилегии в системе"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Уязвимость в Polkit, позволяющая повысить свои привилегии в ..." +/
Сообщение от Совершенно другой аноним (?), 04-Июн-21, 12:37 
> Это детект того, что вызовы завершились.

тут я с Вами не соглашусь - тут и анализ завершения и анализ наличия ошибки (насколько я понимаю расчёт был на то, что retrieved_uid и retrieved_pid никогда, при нормальном завершении, не могут быть равными 0 - pid процесса и uid пользователя (хотя последний для пользователя root таки будет равным 0))

> Мне, кстати, интересно... Вот смотри, если первый завершившийся асинхронный вызов вернёт
> ошибку, то цикл вылетит из-за этой ошибки, так? А возвращаемое значение
> второго вызова так и останется необработанным? Так? И к чему это
> может привести в случае с дубасом? Глянь, data лежит на стеке,
> если сделать return после обработки первого вызова, то где-то там в
> недрах клиентского кода дубаса останется указатель на data, и дубас что-то
> запишет туда, как только появятся данные и будет сделан следующий вызов
> g_main_context_iteration. Или дубас гарантирует, что оба вызова будут обработаны в течение
> одного g_main_context_iteration?

по g_main_context_iteration() ничего сказать не могу - не специалист по glib, а могу только предполагать (см ниже.).

По поводу данных - там выше есть функция on_retrieved_unix_uid_pid() которая является callback-ом и которой передаётся указатель на эту data. Судя по всему сам указатель data в недрах dbus-а используется только для того, чтобы передать его callback-у, который там всё что надо будет заполнит. g_main_context_iteration() вызывает по одному callback-у (делает какой-то single iteration судя по документации), а т.к. потом (при наличии ошибки или при завершении одного из callback-ов), прекращает свой цикл, то попортить стек ему не удастся - второй callback вызвать будет некому. Возможно второе значение сбросится при удалении контекста в g_main_context_pop_thread_default(). Думаю, что там не всё так плохо, как могло-бы показаться на первый взгляд.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Уязвимость в Polkit, позволяющая повысить свои привилегии в системе, opennews, 04-Июн-21, 09:34  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру