URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 124435
[ Назад ]

Исходное сообщение
"Уязвимость в Polkit, позволяющая повысить свои привилегии в системе"

Отправлено opennews , 04-Июн-21 09:34 
В компоненте Polkit, используемом в дистрибутивах для организации выполнения непривилегированными пользователями действий, требующих повышенных прав доступа (например, монтирования USB-накопителя), выявлена уязвимость (CVE-2021-3560), позволяющая локальному пользователю получить права root в системе. Уязвимость  устранена в  версии Polkit 0.119...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=55269


Содержание

Сообщения в этом обсуждении
"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 09:38 
Ошибка логическая но виновата, конечно же сишнка. Сейчас прибегут иксперды скажут святой раст прикладывать к коду для безопасности.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 09:41 
от логических ошибок ни один яп не защищает, все что делает хруст это верифицирует работу с памятью.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Анонимъ , 04-Июн-21 11:06 
Всё, что делает растишка - переводит некоторые проверки на время компиляции.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 15:15 
именно некоторые, при этом куда меньше чем тот-же clang + clang-tidy + clazy

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 16:12 
О, вот и растоманы тебя минусуют.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 04-Июн-21 19:27 
я минус за кланг поставил.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 19:45 
> я минус за кланг поставил.

Любитель rust всех спасёт?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 04-Июн-21 19:47 
>> я минус за кланг поставил.
> Любитель rust всех спасёт?

я раст не люблю, как и шланг

я за GCC


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 19:54 
> я раст не люблю, как и шланг
> я за GCC

Ну тут я поддерживаю. Хоть и с анализом clang получше будет.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 15:13 
> все что делает хруст это верифицирует работу с памятью

нет не делает. или память короткая?

хруст валится на определении доступного объёма памяти и течёт (пример по первому код в лисе, по второму код в хрустоос)


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 16:13 
О, и тут растоман как ты говоришь с короткой памятью. хехе, классика фанатиков

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено нах.. , 05-Июн-21 15:32 
И делает это все также неудачно. Мнда...

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Ыкспэрт , 04-Июн-21 09:48 
> Ошибка логическая но виновата, конечно же сишнка. Сейчас прибегут иксперды скажут святой раст прикладывать к коду для безопасности.

Rust на 105% безопасен, возьмите и приложите его к своим творениям, немедленно! Кто-то даже говорит, что хруст помог ему от логических ошибок потому что он настолько безопасен, что автор кода думает только о логике, а не выходах за пределы отведенному его процессу сегмента памяти и прочих бэкдорах.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено funny.falcon , 04-Июн-21 10:54 
Конкретно в этом месте Rust и правда мог помочь: результат сискола был бы обёрнут в Result, и неправильно интерпретировать его было бы намного сложнее.

На языках семейства ML (к которым пусть и с натяжкой, но можно отнести Rust) совершать логические ошибки труднее. Конечно возможно. Но не так легко.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 16:13 
мда

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:29 
Rust на 146% безопасен!

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 15:17 
чорт, 4% не хватает до нормального языка. эх.

неосиляторы


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 09:55 
>Сейчас прибегут иксперды скажут святой раст прикладывать к коду для безопасности.

Ассемблер спасёт отца демократии! Вот я что-то вообще не припомню чтобы, скажем, в той же Колибри находили какие-то уязвимости.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено qetuo , 04-Июн-21 10:15 
Еще бы колибри была кому-то нужна и где-то использовалась.
Принцип неуловимого Джо в действии.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено нах.. , 04-Июн-21 10:01 
Конечно, виновата. Переписывали бы на хрусте - нет кода, нет проблем с безопастностью!

Причем в случае этой поделки для "какввенде" это самое лучшее решение.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено . , 04-Июн-21 10:17 
В Rust не выйдет так просто проигнорировать ошибку, функция будет возвращать не bool и писать в строку юзера, а вернёт Result<User, Error>

При этом Error так просто в User не превратить, а в случае ошибки User достать будет нельзя


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Совершенно другой аноним , 04-Июн-21 11:14 
там не игнорировали ошибку. Судя по новости "функция polkit_system_bus_name_get_creds_sync() возвращает значение TRUE вместо FALSE, несмотря на то, что не смогла сопоставить процесс с uid/pid и проверить запрошенные для процесса привилегии".

Судя по коду и по сделанной правке - там вызвали два асинхронных вызова к dbus и стали ждать, пока они не заполнят значения pid и uid, или пока не случится ошибка. А вот дальше, если случилась ошибка и вышли из процесса ожидания, не смогли определить по какой причине завершили ожидание. Ну и вернули TRUE вместо FALSE. Т.е ошибку проанализировали, но всё-равно так получилось, что отправились на ветку, что всё хорошо (ну или точнее не отправились на ветку, что всё плохо).


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Ordu , 04-Июн-21 12:02 
Это называется "не обработали ошибку". Они не проанализировали ошибку. Проверка условия ((data.retrieved_uid && data.retrieved_pid) || data.caught_error) -- это не анализ ошибки. Это детект того, что вызовы завершились.

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


"Уязвимость в 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(). Думаю, что там не всё так плохо, как могло-бы показаться на первый взгляд.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Ordu , 04-Июн-21 13:10 
> тут я с Вами не соглашусь - тут и анализ завершения и анализ наличия ошибки

ой, да какого хрена разница. Если вернуться в начало, то вообще исходно разговор начался с того, что rust бы спас от этой проблемы. А то к чему мы пришли -- это спор о смыслах слов. Был программерский спор, стал лингвистический. То есть, мы залезли в оффтоп.

Возвращаясь же к исходному вопросу: я не знаю, спас бы раст от этой проблемы или нет. Покажите мне, как на rust'е это делать, и тогда можно будет судить. Тот API который есть просто нежизнеспособен с растом, потому как там два вызова выше, которые принимают data как &mut ссылку, и где-то там хранят две mut ссылки на неё. Это ноно, нини, никак нельзя. В смысле и в C не стоит так делать, а если всё же делаешь, то надо ОЧЕНЬ сильно подумать, и потратить не менее получаса на поиск граблей, на которые можно наступить при этом. Но в rust'е это сильнее нельзя, потому что без unsafe'а сделать не удастся, а с unsafe'ом оно конечно можно, в смысле это могут принять другие, но только ежели unsafety не пересекает границ модуля. Здесь он пересекает. То есть g_dbus_connection_call должен быть unsafe вызовом (это лишь _соглашение_ растоманов, но они всё же следят за ним когда читают или пишут код). Ну а если мы начинаем использовать unsafe API, то гарантии раста, как бэ, подвисают в воздухе.

> По поводу данных - там выше есть функция on_retrieved_unix_uid_pid()

Которая, судя по её коду, заточена под то, что она будет вызвана дважды. На каждый асинхронный вызов она вызывает g_connection_call_finish. И что-то пишет в data, вне зависимости от того, как там сыграют ветки if'ов: она просто в разные места data пишет, в зависимости от if'ов. Если между этими двумя вызовами коллбека произойдёт return в polkit_system_bus_name_get_creds_sync, то второй вызов будет писать в удалённый стековый фрейм.

edit:
> делает какой-то single iteration судя по документации

А, вот это похоже на правду. Надо полагать, что dangling указателя, всё же не возникает.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Совершенно другой аноним , 04-Июн-21 13:29 
>> тут я с Вами не соглашусь - тут и анализ завершения и анализ наличия ошибки
> ой, да какого хрена разница. Если вернуться в начало, то вообще исходно
> разговор начался с того, что rust бы спас от этой проблемы.
> А то к чему мы пришли -- это спор о смыслах
> слов. Был программерский спор, стал лингвистический. То есть, мы залезли в
> оффтоп.

безотносительно спора - ну как-бы о словах надо договариваться, чтобы не получилось, что мы говорим одно и тоже слово, но каждый под ним понимает что-то своё.

А так, скажем так, что у них получилось обработать ошибку, но не до конца.

>[оверквотинг удален]
> не стоит так делать, а если всё же делаешь, то надо
> ОЧЕНЬ сильно подумать, и потратить не менее получаса на поиск граблей,
> на которые можно наступить при этом. Но в rust'е это сильнее
> нельзя, потому что без unsafe'а сделать не удастся, а с unsafe'ом
> оно конечно можно, в смысле это могут принять другие, но только
> ежели unsafety не пересекает границ модуля. Здесь он пересекает. То есть
> g_dbus_connection_call должен быть unsafe вызовом (это лишь _соглашение_ растоманов,
> но они всё же следят за ним когда читают или пишут
> код). Ну а если мы начинаем использовать unsafe API, то гарантии
> раста, как бэ, подвисают в воздухе.

про Rust я не могу ничего сказать. как это в нём можно сделать вообще, и как именно делать лучше в частности.

>[оверквотинг удален]
> Которая, судя по её коду, заточена под то, что она будет вызвана
> дважды. На каждый асинхронный вызов она вызывает g_connection_call_finish. И что-то пишет
> в data, вне зависимости от того, как там сыграют ветки if'ов:
> она просто в разные места data пишет, в зависимости от if'ов.
> Если между этими двумя вызовами коллбека произойдёт return в polkit_system_bus_name_get_creds_sync,
> то второй вызов будет писать в удалённый стековый фрейм.
> edit:
>> делает какой-то single iteration судя по документации
> А, вот это похоже на правду. Надо полагать, что dangling указателя, всё
> же не возникает.

как по мне, код на C вполне себе элегантный, правда что так и не понятно - зачем они делают два вызова? неужели боятся, что по одному могут ответить гораздо медленнее, чем по второму, но не знают по какому? или то какое-то legacy осталось, типа давайте спросим так, а если нас не поняли, то тогда по другому.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Ordu , 05-Июн-21 02:34 
> ну как-бы о словах надо договариваться, чтобы не получилось, что мы говорим одно и тоже слово, но каждый под ним понимает что-то своё.

Есть способ проще -- попытаться обойтись без использования этого слова. Заменить везде слово определением этого слова. И вот теперь уже не нужно вдаваться в лингвистические споры о том, какое определение правильнее, можно разговаривать по сути дела.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:51 
Очередной высер растофанатика, в ошибке не разобрался но уже своё мнение высказал и раст в нем уже победил.

Еще раз он не игнорировал ошибку, просто функция выдала тру вместо фолс.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 10:26 
Это не логическая ошибка.

Необработка ошибок (их игнорирование). И да, язык спокойно и незаметно позволяет это сделать.

В нормальном языке программирования ты должен обязательно обработать результат функции, если он может содержать ошибочные значения. Иначе ошибка компиляции.

Или явно, сознательно, указать что не будешь обрабатывать и игнорируешь.

Так сделано в Zig, и вроде в Rust такз.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:08 
Для этого есть __attribute__ ((warn_unused_result)) и gcc -Wall -Werror
но погромисты, такие погромисты.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено fsb4000 , 04-Июн-21 16:28 
[[nodiscard]] добавили в стандарт С23. Так что можно и без вендор лока...

https://gcc.godbolt.org/z/K69dT5qcT


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:53 
Никто ошибку не игнорировал протри глаза.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:31 
>Ошибка логическая но виновата, конечно же сишнка.

[rusttroll]Ну разумеется. Надо было писать на Rust![/rusttroll]


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Full Master , 04-Июн-21 17:14 
>святой раст

Компилятор которого использует LLVM, написанный на C++. И написанный на C линкер из MSVC под виндой, и LLD или LD/GOLD под юниксом.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено anonymous , 04-Июн-21 09:43 
Виноват не язык, виноват дизайн - столько сложностей на пустом месте просто обязаны содержать ошибки.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Michael Shigorin , 04-Июн-21 10:07 
Вот да.  Того, кто туда потащил ещё и js -- проектировать надо учить "по морде чайником, и самоваром, и паяльником".  И то у бегемота шансы выше.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено хацкер , 04-Июн-21 10:52 
Михаил, может поумерите свой модераторский пыл уже?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Michael Shigorin , 04-Июн-21 11:38 
Думаю, это всё же Вам следует открыть для себя ссылку "лог модерирования" (внизу справа под комментариями к полному тексту новости): http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=li...

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено хацкер , 04-Июн-21 13:05 
тем не менее))

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Michael Shigorin , 03-Июл-21 19:32 
> тем не менее))

ладно :)


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:59 
Так в Polkit притащили уже давно - spydermonkey.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 16:09 
Шигорин об этом и говорит, по-моему. И ладно бы ещё просто захотелось писать программируемые рулесы вместо старого ini формата (или там xml был, не помню уже за двностью), но нахрена же было тащить кусок браузера в 300 мегабайт, будто прогрессивное человечество не придумало других языков, которые легко в сишный код встраиваются (луа? не, не слышали).

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено mikhailnov , 05-Июн-21 18:26 
>  кусок браузера в 300 мегабайт

$ rpm -q --qf '%{size}\n' lib64mozjs78_78-78.9.0-1.x86_64
14030436

14, а не 300


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено n00by , 06-Июн-21 07:42 
>>  кусок браузера в 300 мегабайт
> $ rpm -q --qf '%{size}\n' lib64mozjs78_78-78.9.0-1.x86_64
> 14030436
> 14, а не 300

У тебя #define в Си объявляет переменную и размер кучи ты прикинуть не можешь, потому для тебя существенна разница меж 14 и 300 метрами исполняемого файла, без учёта его зависимостей.

А речь была о том, что незачем тащить ненужные мегабайты, когда хватило бы 200-300 Кб, а то и 50.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 18:04 
https://www.linux.org.ru/forum/security/15600248?cid=15622030

Уважаемому Потерингу необходимо было сделать:
1. Придумать формат правил контроля доступа
2. Написать компилятор этих правил.
А для этого надо талант, время и деньги...

Потеринг не сделал ничего, взял Java Script и его компилятор от Mozilla. А вы это "оно" жуйте и глотайте.

Миша, а когда, всеми любимый ALT Linux избавится от systemd, dbus, polkitd+JS?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Andrey , 04-Июн-21 11:50 
Коль скоро C-шечка даёт свободу делать дизайн API плохим, он и дальше будет в среднем не очень.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:55 
Коль в срасту подпускают вебмакак. Они так и продолжат делать дизайн плохим. И язык им прям совсем никак не помешает это сделать.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Lex , 04-Июн-21 09:55 
> В компоненте, используемом для организации выполнения непривилегированными пользователями действий, требующих повышенных прав доступа, выявлена уязвимость, позволяющая локальному пользователю получить права root в системе

Ну кто бы мог подумать


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Anonymoustus , 04-Июн-21 10:11 
Все десктоперские метастазы, которые породила Шляпа за прошедшие четверть века, заведомо небезопасны и принципиально не могут быть безопасными. Но мышки продолжают жевать этот горький десктоперский кактус и нахваливать, а не пользоваться традиционными консольными средствами с умом и пониманием.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 04-Июн-21 23:03 
и шрифт liberation тоже не безопасный?


Кстати, полкит - продукт редхата?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Anonymoustus , 05-Июн-21 06:10 
fd.o — продукт Редхата. Всё, что выходит из этой выгребной ямы и её окрестностей, включая системду — продукты Шляпы. А сама Шляпа с конца девяностных на довольствии у Межделмаша. Но вы, конечно, продолжайте верить в свободу и сообщество.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 08:14 
> fd.o — продукт Редхата. Всё, что выходит из этой выгребной ямы и её
> окрестностей, включая системду — продукты Шляпы. А сама Шляпа с конца девяностных
> на довольствии у Межделмаша. Но вы, конечно, продолжайте верить в свободу
> и сообщество.

systemd кстати к fd.o не относиться, она просто редхатом разрабатывается (хотя Пёттеринг её создал до того как стал в редхате работать)

а так полкит вещь на мой взгляд очень дурацкая, хотя полезные применения имеет. Но зачем там js

надо будет попытаться её выкинуть из мое ОС


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Anonymoustus , 05-Июн-21 08:36 
Не важно, во скольких коробках лежат редхатовские бирюльки, хозяин один и тот же.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено kusb , 04-Июн-21 10:21 
Усложнения, усложнения не меняются.
А способа например просто записать в файл от рута в программе не от рута так и нет. Вообще привелегии "всё или ничего" это плохо.
Текстовому редактору например достаточно спросить разрешение на запись одного файла при попытке это сделать при сохранении... И не перезапускаться даже.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено n00by , 04-Июн-21 11:54 
> Текстовому редактору например достаточно спросить разрешение на запись одного файла при
> попытке это сделать при сохранении... И не перезапускаться даже.

Необходимо, что бы подобное разрешение запрашивала система. Получается UAC. При этом в сеансе Иксов такой запрос как раз будет обходим.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:11 
>Вообще привелегии "всё или ничего" это плохо.

Привилегии "частично" реализуются Linux Capabilities.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено нах.. , 04-Июн-21 12:27 
образуя дыру, угу. Которой бы не было, если бы юникс-программа работала как юникс-программа.

Нет, конечно же лет через пятьдесят все поперепишут на хруст и научатся сбрасывать излишние капабилити. (Нет. Но простой и внятно работающий софт изведут окончательно, точно.)


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 13:10 
Как будто, в прграммах c suid'ом дыр не бывает. Поэтому capabilities и замутили.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено нах.. , 04-Июн-21 12:24 
Это юникс, чувак.
Если кому-то нужна была винда - надо было просто не выпендриваться и ставить винду.

А вы налепили костылей и подпорочек.

> Текстовому редактору например достаточно спросить разрешение

текстовому редактору чтобы было достаточно "спросить" - нужно уже иметь эту возможнось. Получаем текстовый редактор, имеющий возможность делать ВСЁ. И прикрытую фиговым листиком "спросить".

Вот тебе и результаты, собственно.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено kusb , 04-Июн-21 18:17 
> Это юникс, чувак.
> Если кому-то нужна была винда - надо было просто не выпендриваться и
> ставить винду.
> А вы налепили костылей и подпорочек.
>> Текстовому редактору например достаточно спросить разрешение
> текстовому редактору чтобы было достаточно "спросить" - нужно уже иметь эту возможнось.
> Получаем текстовый редактор, имеющий возможность делать ВСЁ. И прикрытую фиговым листиком
> "спросить".
> Вот тебе и результаты, собственно.

Ну вся суть, что он не должен спрашивать, он должен просто записывать файл, как обычно.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено kusb , 04-Июн-21 18:23 
В принципе диалог сохранения может быть отдельной программой с отдельными правами, а без вызова этой программы текстовый редактор не мог бы записать файл вообще никак. Нет вызова "сохранить файл", вызов программы сохранения это единственный легитимный способ и это и есть api сохранения файла. И аргументы командной строки связаны с бинарным интерфейсом.
Опять что-то ещё более страшное горожу? Хочу победить сложность и неадекватность, но придумываю свою сложность и неадекватность? Эх. Всё хорошо, пока системы поддерживают простыми, но потом начинается.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 09-Июн-21 20:43 
пусть нейросеть решает (или спор ИИ): запаха нет, плюсы на опеннет, вовремя апгрейдил - кредит доверия на запись в /etc.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено kusb , 09-Июн-21 20:57 
> пусть нейросеть решает (или спор ИИ): запаха нет, плюсы на опеннет, вовремя
> апгрейдил - кредит доверия на запись в /etc.

Не верю в непонятность слов.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено mikhailnov , 05-Июн-21 18:27 
> А способа например просто записать в файл от рута в программе не от рута так и нет.

Есть: https://www.opennet.me/opennews/art.shtml?num=49871


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 10:22 
>> В компоненте Polkit, используемом в дистрибутивах для организации выполнения непривилегированными пользователями действий, требующих повышенных прав доступа найдена уязвимость, позволяющая повысить свои привилегии в системе

Что? Корова купленная для молока дала молоко?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено слакварявод , 04-Июн-21 10:29 
Ну просто поооолный пэээ...
Сколько можно-то?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено lockywolf , 04-Июн-21 10:43 
Так polkit  же и нужен для получения прав рута.

Получается, программа просто делает свою работу.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Andrey , 04-Июн-21 12:10 
Он как раз нужен, чтобы права рута не давать, а одобрить определённое действие из ограниченного набора, которое для пользователя сделает уже привилегированная программа.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено kusb , 04-Июн-21 18:26 
> Он как раз нужен, чтобы права рута не давать, а одобрить определённое
> действие из ограниченного набора, которое для пользователя сделает уже привилегированная
> программа.

Почему нельзя просто запускать привелегированный скрипт без возможности изменить его?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Andrey , 07-Июн-21 12:07 
>Почему нельзя просто запускать привелегированный скрипт без возможности изменить его?

1. У такого решения меньше гибкости.
2. Если предполагается много разных действий, понадобится либо несколько привилегированных скриптов, либо передавать туда аргументы, что в контексте интерпретируемых языков идея рискованная.
3. В policykit можно, например, для определённых действий затребовать у юзера авторизоваться как пользователь, а не обязательно как администратор.
4. Можно для разных действий установить разные правила хранения авторизаций при их повторном запросе.

В общем, см. тут: https://www.freedesktop.org/software/polkit/docs/latest/polk...


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено InuYasha , 04-Июн-21 11:02 
Всегда удивляет нечистоплотность программистов в критичных програмах. Для чего функции что-то возвращают? Чтобы в пустоту исчезло?
Всю жизнь твердили:

1. проверить данные
2. вызвать функцию
3. проверить результат

if (pData)
{
    if (SomeProcessing(pData) == SUCCESS)
        WeHaveAWinner();
}


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:07 
> if (SomeProcessing(pData) == SUCCESS)

Главное, чтобы это был не PHP...


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Бабушка Анонима , 04-Июн-21 11:08 
Ну это же очевидно, надо просто вывести идеальных генно-модифицированных программистов, которые будут писать код без ошибок. Почему до сих пор не сделали?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:09 
Палишься, вендузятник, ой как палишься.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:43 
А зачем тогда жаловаться, что, например, Pascal и D проверяют границы массивов автоматически?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено InuYasha , 04-Июн-21 12:05 
А кто жалуется? Я просто на них не пишу ) Ну, и толку в проде, что они проверяют? Разве что, контролируемый крэш, что полезно при отладке. Логика алгоритма всё равно зависит от того, как выход за границы будет обработан.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено HyC , 05-Июн-21 03:41 
А если логика написана так что выход за границы массива при некоторых условиях оказался не обработан а должен бы был ? Пускай уж лучше крэшится чем молча за границу выйдет и хрен пойми что натворит.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 16:22 
С разморозкой. C++ тоже контролирует

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 14:34 
Так, здесь по подробней. Специально проверял array<>, выходит за границы. Или я не то использую, чтоб контролируемо было?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено n00by , 05-Июн-21 16:05 
Вы не показываете код, но просите угадать.

The member function at() provides bounds-checked access to container elements. at() throws out_of_range if n >= a.size().


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 10-Июн-21 12:43 
Спасибо. Я объект класса array индексировал [].

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено n00by , 10-Июн-21 16:20 
Специально предоставлено оба варианта, т.к. operator[] иногда чуть быстрее.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 09-Июн-21 15:35 
> Так, здесь по подробней. Специально проверял array<>, выходит за границы. Или я
> не то использую, чтоб контролируемо было?

.at()


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:02 
Крамольные вещи пишите... Если все программисты будут так писать, то даже сектанты раста начнут понимать, что он не нужен.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 11:40 
Кто в курсе, зачем Polkit'у зависимость от Spydermonkey?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним84701 , 04-Июн-21 12:16 
> Кто в курсе, зачем Polkit'у зависимость от Spydermonkey?

https://www.freedesktop.org/software/polkit/docs/latest/polk...
> Rules files are written in the JavaScript programming language and interface with polkitd through the global polkit object (of type Polkit).


polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.accounts.user-administration" &&
        subject.isInGroup("admin")) {
        return polkit.Result.YES;
    }
});



"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено abi , 04-Июн-21 12:20 
Я так понимаю, они правила на нём пишут
https://cgit.freedesktop.org/polkit/tree/src/polkitbackend/5...

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 12:49 
Мда, ещё одна бомба замедленного действия. А аналога Polkit не существует?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 15:05 
аналог и не нужен. штатных средств системы достаточно

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено любитель_раста , 04-Июн-21 14:01 
уж сколько я не люблю раст, а он бы тут не помог бы. потому что раст - гораздо сложнее чем си, а мы уже знаем, что усложнение языка - плохо влияет на головы любителей раста.

по-этому, как любитель раста, авторитетно заявляю, что тут больше подошёл бы замечательный язык D (Ди - пря мо, как "леди Ди").


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 15:03 
Лучше не заявляй. Здесь проблема в ДНК вендузятников. Это им по каждому чиху сервис нужен. Потому что не в состоянии осилить маны.

Штатные средства системы со всем этим как справлялись так и справлются просто на ура. Это поделье вообще не нужно.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 14:56 
Не пользовал не пользую и не собираюсь пользовать. Штатные средства системы прекрасно справлялись со всем и без этого поделия набежавших вендузятников

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 14:42 
Но от Polkit Кеды зависят. От Кедов отказываться не предлагать. Или их таки можно отвязать?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 21:58 
> Но от Polkit Кеды зависят. От Кедов отказываться не предлагать. Или их
> таки можно отвязать?

если собирать из исхов то наверно да. А если нет - то нельзя т.к. полкит это впервую очередь либа и если с ней что то слинкованно -только пересборка


ну и мб там только 1-2 не очень важных компонента зависят - тогда да


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 14:59 
> polkit_system_bus_name_get_creds_sync()

Чего?

А ну да, вендузятники

we_are_windows_stupid_programmers_we_do_knows_nothin_but_we_want_to_be_cool_linux_programmers_rust_forever_hohoho_we_are_idiots(true)


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Совершенно другой аноним , 04-Июн-21 15:32 
>> polkit_system_bus_name_get_creds_sync()
> А ну да, вендузятники
> we_are_windows_stupid_programmers_we_do_knows_nothin_but_we_want_to_be_cool_linux_programmers_rust_forever_hohoho_we_are_idiots(true)

ну, у "вендузятников" был-бы CamelCase:
WeAreWindowsStupidProgrammersWeDoKnowsNothinButWeWantToBeCoolLinuxProgrammersRustForeverHohohoWeAreIdiots(true).


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено deeaitch , 04-Июн-21 16:24 
точняк

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 22:56 
Всяко лучше чем __с2_to_f()

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 17:08 
Этот дырявый линукс...

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 17:34 
Я каких пор polkit считается куском ядра?

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 04-Июн-21 22:57 
С тех пор как системд

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 04-Июн-21 23:07 
системд не зависит и не требует полкит и частью ядра не являеться

и полкит от системд тоже не зависит


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:01 
линукс меньше системд чем полкит.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:02 
> линукс меньше системд чем полкит.

всмысле?


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:04 
можно заменить системд на линуксе, но нельзя полкит.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:06 
> можно заменить системд на линуксе, но нельзя полкит.

но можно от него избавиться


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:11 
угу, и ничего не будет работать потому что альтернативы какой-либо не существует (на линуксе так точно).

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:14 
> угу, и ничего не будет работать потому что альтернативы какой-либо не существует
> (на линуксе так точно).

что не будет работать ?

полкит ничего важного не делает, нужен только чтоб хомячки могли без рута интернет настроить и монтировать файловые системы в файл менеджере не вводя пароль


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:35 
этого мало? программы для работы с дисками от него зависят, да и утомительно каждый раз втыкая флешку вводить пароли

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:39 
> этого мало? программы для работы с дисками от него зависят, да и
> утомительно каждый раз втыкая флешку вводить пароли

gvfs от полкита не зависит, думаю что он всегда под рутом работает. Какие программы? только udisks

поблема только в 2-3 прогах требующих полкит в обязательном порядке


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:44 
мимо, gvfs без полкита и udisks работать не будет. сам по себе gvfs ещё в тысячу раз хуже всех китов вместе взятых. в частности, он тянет avahi. успехов удалить udisks, кстати.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:54 
> мимо, gvfs без полкита и udisks работать не будет. сам по себе
> gvfs ещё в тысячу раз хуже всех китов вместе взятых. в
> частности, он тянет avahi. успехов удалить udisks, кстати.

https://www.linuxfromscratch.org/blfs/view/systemd/gnome/gvf...
Required

dbus-1.12.20, GLib-2.68.2, libusb-1.0.24, libsecret-0.20.4 and libsoup-2.72.0


авахи это уже совершенно необязательная зависимость которую использует ваш дистр (дистростроители просто обожают пихать в зависимости весь опциональный мусор)

с удискс сложности, гном его требует. но можно думаю исхи udisk чуть поправить и все норм будет

и удалят мне ни чего не надо, я предпочитаю не устанавливать


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:57 
не устанавливать никакие de и никакой софт, только пердолиться со всем? ну, это, конечно, вариант, но есть вещи по-интереснее и можно потратить время полезнее. в частности, до сих пор нет очень многих вещей, даже аудиоплеера для линукса никто не написал до сих пор (как и вообще опенсорсного на самом деле).

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 13:00 
> не устанавливать никакие de и никакой софт, только пердолиться со всем? ну,
> это, конечно, вариант, но есть вещи по-интереснее и можно потратить время
> полезнее. в частности, до сих пор нет очень многих вещей, даже
> аудиоплеера для линукса никто не написал до сих пор (как и
> вообще опенсорсного на самом деле).

что мешает устанавливать de и софт

и помойму вполне себе можно любой аудио файл проиграть пользуясь только свободными программами


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 17:58 
но ведь плеер это далеко не только воспроизведение, а так да. если устанавливать de или софт, те попросят какой-нибудь udisks с libsoup для своей работы и без них будут работать как минимум неполноценно, а часто и с ошибками, а часто и не будут работать вовсе.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 21:54 
> но ведь плеер это далеко не только воспроизведение, а так да. если
> устанавливать de или софт, те попросят какой-нибудь udisks с libsoup для
> своей работы и без них будут работать как минимум неполноценно, а
> часто и с ошибками, а часто и не будут работать вовсе.

они просто не соберутся, если нет зависимости. но ПО которое требует полкит не много, можно и чуть чуть поправить исхи

с гномом сложно и увы я использую его, а не xfce (у которого зависимотей очень мало)

А вообще я от полкита не пытался избавиться, только теоритечески об этом рассуждаю. Но могу и попробовать

P. S. я если что использую лфс в качестве основной системы



"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 13:02 
это будет gvfs который только для бэкдора, и как максимум сливает телеметрию и больше ничего не делает? судя по libsoup

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 13:07 
> это будет gvfs который только для бэкдора, и как максимум сливает телеметрию
> и больше ничего не делает? судя по libsoup

какая телеметрия? можно можно также и не обязательные зависимости использовать. Да и без них gvfs вполне работоспособен. но собирать его с avahi вовсе необязательно. У него еще и apache - опциональная зависимость.

я просто говорю что зависимости у дистров и зависимости реальные - разные вещи


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:03 
не так. полкит больше линукс, чем системд.

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:07 
> не так. полкит больше линукс, чем системд.

линукс - https://www.kernel.org/

а демон на жс не как не заменяет его


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 12:10 
линукс это общее название операционных систем на базе ядра линукс, обычно под этим названием подразумевается гнулинукс т.н. "десктоп".

"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено макпыф , 05-Июн-21 12:11 
> линукс это общее название операционных систем на базе ядра линукс, обычно под
> этим названием подразумевается гнулинукс т.н. "десктоп".

если вы про ОС как набор компонентов то все примерно тоже самое - полкит его не заменяет и только может быть туда включен (а может и не быть)


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 14:44 
>С тех пор как системд

Тьфу-тьфу-тьфу, это овно ещё не ядре.


"Уязвимость в Polkit, позволяющая повысить свои привилегии в ..."
Отправлено Аноним , 05-Июн-21 11:28 
Шо опять не на расте?