LINUX.ORG.RU

Уязвимости в networkd-dispatcher, позволяющие получить права root

 ,


0

0

Благодаря исследователям безопасности из компании Microsoft, были выявлены две уязвимости CVE-2022-29799 и CVE-2022-29800 в сервисе networkd-dispatcher, в связке позволяющие получить права root. Уязвимости было присвоено кодовое имя Nimbuspwn.

Networkd-dispatcher разрабатывается отдельно от systemd, но применяется во многих дистрибутивах Linux, использующих для настройки параметров сети фоновый процесс systemd-networkd. Связанный с networkd-dispatcher фоновый процесс выполняется с правами root и принимает сигналы о событиях через шину D-Bus. Информация о событиях, связанных с изменением состояния сетевых соединений, отправляется сервисом systemd-networkd. Проблема в том, что непривилегированные пользователи могут сформировать событие о несуществующем состоянии и инициировать запуск своего скрипта, который будет выполнен с правами root.

Кроме того, изучение работы networkd-dispatcher привело к обнаружению ряда других проблем: выход за пределы директории, гонки из-за символических ссылок и из-за модификации данных — все это может быть использовано в злонамеренных целях.

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

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

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

Мда… вот мы и заметить не успели как выросло новое поколение идиотов. Печаль.

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

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

Воистину, стоило бы сначала читать весь тред и мала-мала думать. Потому что у некоторых других старичков мудрость, похоже, тоже мимо пробежала :D

Видишь ли, я всего-то был неприятно удивлен тем, что другим операционкам отказали в праве иметь более нормальный init, чем systemd. Хотя у многих из них и до того было всё неплохо и, по факту, GNU/Linux вообще оказался предпоследним из современных ОС, кто обзавелся чем-то поприличнее bsd-портянок и sysvinit мусорки. Конкретно я до сих пор считаю аналогичную подсистему соляры гораздо более продуманной. Да и у macos launchd появился задолго до (я сейчас даже не знаю что там, может уже тоже на systemd перешли? ))) Даже Гайка с Виндой и то смотрит на это чудо как на чудо и только DOS и *BSD слегка завидуют, но не спешат…

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

Сравнение систем инициализации имеет смысл как среди разных ОС, так и в пределах одной ОС, без рассмотрения других ОС.

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

Вообще - да, но в контексте треда было заявлено что «Другие операционки и до systemd посасывали у линукса, а теперь они с линуксом даже рядом не стоят.» Ну, можешь конечно защищать альтернативно одаренный молодняк - дело твое.

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

GNU/Linux вообще оказался предпоследним из современных ОС, кто обзавелся чем-то поприличнее bsd-портянок и sysvinit мусорки.

Пользуясь случаем: s6 прекрасен. :)

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

OpenRC мне понравился

OpenRC по ощущениям сделан тупо в лоб – как слышится, так и пишется. С одной стороны это плюс, но s6 задизайнен гораааздо продуманнее и элегантнее.

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

ifconfig в OpenBSD – это полноценный инструмент, позволяющий настроить целиком L2/L3-параметры сети.

Даже не нужен wpa-supplicant. Во FreeBSD чуть победнее.

iproute2 – странный не-юниксвейный набор различных вещей от L2/L3-конфигурации, до таблицы маршрутов, qos/шейпинга, запихнутый в один бинарник. Так победим.

GNU is not UNIX, точно, забыл.

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

И как без dispatcher, например, по одному и тому же пути монтировать разные удалённые директории в зависимости от подключения?

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

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

zabbal ★★★★★
()

О! Как я отстал от мира... Майкрософт активно пилет Linux?

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

Это ты не осилил понять суть задачи. Как ты собираешься с помощью automount перемонтировать директорию с одного адреса на другой?

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

Запросто. Первый хост становится недоступен, automount его размонтирует. Второй хост становится доступен, automount его монтирует. На одну директорию или на разные - пофиг.

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

А ничего, что automount только по таймауту размонтировать умеет?

Ничего.

А что если оба хоста доступны?

Ну это вообще… man systemd.unit

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

Ничего.

Решил все рекорды по шлангованию побить? Как automount размонтирует хоста, когда тот станет недоступен, и сразу примонтирует другого, если размонтировать он умеет только по таймауту (да и тот по умолчанию отключён)?

Ну это вообще… man systemd.unit

Какое-то увиливание. Сначала automount, теперь unit. При этом никакой конкретики. Смахивает на мир-дверь-мяч.

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

Решил все рекорды по шлангованию побить?

А если да, то что?

да и тот по умолчанию отключён

Почему тебя волнует, что там по умолчанию?

При этом никакой конкретики.

Какая тебе конкретика нужна? Настрой зависимости юнитов так, чтобы 2 хоста не были смонтированы одновременно.

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

И уж точно монтированию сетевых шар нет места в диспетчере сетевых соединений.

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

Какая тебе конкретика нужна?

Конкретные опции, которыми можно настроить желаемое поведение, а не какие-то смутные, постоянно меняющиеся указания и обвинения в неосиляторстве.

Настрой зависимости юнитов так, чтобы 2 хоста не были смонтированы одновременно.

А давно в systemd-юнитах появилась возможность указать в качестве зависимости подключение к конкретному интерфейсу? Максимум что там есть — это *-wait-online.service, но это вообще не то.

И уж точно монтированию сетевых шар нет места в диспетчере сетевых соединений.

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

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

А давно в systemd-юнитах появилась возможность указать в качестве зависимости подключение к конкретному интерфейсу?

Вообще не об этом речь. Просто сделай чтобы они конфликтовали между собой и чтобы второй не стартовал пока запущен первый и наоборот. Что сложного то?

Конкретные опции, которыми можно настроить желаемое поведение

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

В-третьих, где ему ещё быть, если монтирование привязано к событиям этого самого диспетчера?

А не должно быть привязано.

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

Вообще не об этом речь. Просто сделай чтобы они конфликтовали между собой и чтобы второй не стартовал пока запущен первый и наоборот. Что сложного то?

А не должно быть привязано.

Прекращай шланговать.

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

Я уже разобрался: нету никакого другого способа реализовать то, что я описал, кроме как через dispatcher.

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