LINUX.ORG.RU

Обнаружена уязвимость в Polkit, которая позволяет выполнять любую команду systemctl пользователю с низкими привилегиями

 , , ,


1

2

Уязвимость CVE-2018-19788 присутствует на большинстве операционных систем GNU/Linux и позволяет пользователю, чей UID превышает 2147483647, выполнить любую команду systemctl, равно как и получить root-права.

Проблема существует из-за ошибки в библиотеке Polkit (другое название PolicyKit), заключающейся в неправильной проверки запросов от пользователей с UID > INT_MAX. Где INT_MAX это константа определяющая максимальное значение переменной типа int, равняющаяся 0x7FFFFFFF в шестнадцатеричной или 2147483647 в десятичной системе счисления.

Исследователь по безопасности Rich Mirch (аккаунт в Twitter 0xm1rch) представил успешно работающий эксплоит, демонстрирущий данную уязвимость. Для его корректной работы требуется наличие пользователя с идентификатором 4000000000.

В Twitter'е предлагают гораздо более простой способ получения root-прав:

systemd-run -t /bin/bash

Компания Red Hat рекомендует системным администраторам не создавать аккаунты с отрицательными значениями UID или UID превышающими 2147483647 до тех пор, пока не будет выпущен патч, исправляющий уязвимость.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ls-h (всего исправлений: 5)

Ответ на: комментарий от AS

Я примерно понимаю чего ты ожидаешь услышать, но, к сожалению, реальность несколько сложнее.

Положи в какой-нибудь скриптец в /etc/cron.hourly и его содержимое будет запущено «не сверяясь так или иначе заданным списком допустимого к запуску».

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Положи в какой-нибудь скриптец в /etc/cron.hourly

Чтобы его туда положить, если в системе нет каких-то уязвимостей локальных, нужны определённые, и, главное, предсказуемые права. А не как-то случайно появившиеся. Плюс некоторым вариантам cron (например vixie), ещё и права на сам файл нужны не абы какие.

AS ★★★★★
()
Ответ на: комментарий от AS

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

Просто с UNIX DAC ты знаком, а с политиками polkit'а - нет. Вот и вся разница.

vasily_pupkin ★★★★★
()
Последнее исправление: vasily_pupkin (всего исправлений: 1)
Ответ на: комментарий от vasily_pupkin

а с политиками polkit'а - нет.

Как-то их используют внезапно очень широко. На мой взгляд. И, вроде бы, раньше как-то так не было. Ну или не на слуху было.

AS ★★★★★
()
Ответ на: комментарий от AS

Ну, я не скажу за реализацию. А идея здравая. Нужен гранулированный способ для предоставления механизма принятия решений о предоставлении доступа. Это примерно как pam для локальных клиент-серверных приложений. Для нормального десктопа подобные вещи необходимы

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Ну, я не скажу за реализацию. А идея здравая.

Идея здравая, а реализация говно. Конфигурация на JS, my ass.

tailgunner ★★★★★
()
Ответ на: комментарий от metawishmaster

У меня на ASCII

Завел от рута

useradd -u 4000000000 testpolit

от рабочего пользователя

sudo -u testpolit pkexec /bin/bash

попросил пароль юзера и на данный пароль сказал что я не в sudoers файле...

вписал в /etc/sudoers для рабочего пользователя возможность вызывать /sbin/reboot

дак на

sudo -u testpolit pkexec /bin/bash

говорит что в sudoers мне нельзя 'pkexec /bin/bash' от testpolit сделать...

Что я делаю не так?

anonymous
()
Ответ на: комментарий от anonymous

я тут некоторое время писал, что я получаю рута, но меня «напрягает» то, что sudo не спрашивал пароля (потому что я в sudoersах) - в смысле, нужно пробовать от пользователя, который не обладает такой привилегией. И да, могу подтвердить. Обычный куцый юзер рута не получит. На ASCII.

metawishmaster ★★★★★
()
Ответ на: комментарий от anonymous

почти, но я же безпарольности себе хочу
«sbauer ALL=(ALL:ALL) NOPASSWD: ALL»

metawishmaster ★★★★★
()
Последнее исправление: metawishmaster (всего исправлений: 4)
Ответ на: комментарий от metawishmaster

я получаю рута, но меня «напрягает» то, что sudo не спрашивал пароля (потому что я в sudoersах)

Выше с AS разобрали почему root получается.

imul ★★★★★
()
Ответ на: anonuid от mumpster

На один хост логинилась половина населения земли и его взломали? Теперь-то мы точно все умрем.

anonuid

Не понял, причем тут anonuid (который по факту назначается пользоветелям, у которых нет логина на хост).

tailgunner ★★★★★
()
Ответ на: комментарий от vasily_pupkin

«Стандартных» технологий повышения привилегий на данный момент всего 3 - su, sudo, polkit.

Поправка: четыре — 3 названных и runuser(1).

dexpl ★★★★★
()
Ответ на: комментарий от monk

Я понимаю, что некропост, но: обожечки ты мой! настоящий фридесктопный антиюниксвей! Всё фридесктопное дерьмо в одной большой куче и над ней зелёными мухами кружатся поклонники, создавая мерзкий надоедливый гул.

anonymous
()
Ответ на: комментарий от Quasar

Потому и ботнеты из роутеров обычное дело, как и заражённые андроиды, крадущие данные своих пользователей. Только не надо говорить, что это «не линукс».

anonymous
()
Ответ на: комментарий от Quasar

это что-то вроде POSIX

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.