Nimbuspwn, уразливість у мережевому диспетчері, яка дозволяє запускати команди від імені root

L Випустили дослідники безпеки Microsoft новина, яка виявили дві вразливі місця (CVE-2022-29799, CVE-2022-29800) в мережно-диспетчерській службі під кодовою назвою Nimbuspwn, які дозволяють непривілейованому користувачеві виконувати довільні команди від імені root.

networkd-dispatcher en використовується багатьма дистрибутивами Linux, включаючи Ubuntu, який використовує фоновий процес systemd-networkd для налаштування мережевих параметрів і виконує функції, подібні до NetworkManager-dispatcher, тобто обробляє виконання сценарію, коли змінюється стан мережного підключення, наприклад, використовується для запуску VPN після встановлення підключення до основної мережі.

Корпорація Майкрософт виявила кілька вразливостей під загальною назвою Nimbuspwn, які можуть дозволити зловмиснику підвищити привілеї для отримання root на багатьох кінцевих точках комп’ютера Linux. Уразливості можна об’єднати в ланцюжок, щоб отримати права root в системах Linux, дозволяючи зловмисникам розгортати корисні навантаження, такі як бекдор root, і виконувати інші шкідливі дії за допомогою довільного виконання root-коду. Крім того, уразливості Nimbuspwn потенційно можуть використовуватися як вектор для root-доступу більш складними загрозами, такими як зловмисне програмне забезпечення або програми-вимагачі, для подальшого впливу на вразливі пристрої.

Ми виявили вразливості, прослуховуючи повідомлення на системній шині під час перегляду коду та динамічного аналізу служб, що працюють від імені root, і помітили дивну закономірність у системному блоці під назвою networkd-dispatcher.

Фоновий процес, пов’язаний із мережевим диспетчером, виконується як root і прослуховує події через D-Bus. Служба systemd-networkd надсилає інформацію про події, пов'язані зі зміною стану мережевих з'єднань. Проблема в тому, що непривілейовані користувачі можуть викликати неіснуючий статус і почати виконувати ваш сценарій, який запускатиметься від імені root.

systemd-networkd призначений лише для запуску скриптів системний контролер, розташований у каталозі /etc/networkd-dispatcher і не може бути замінений користувачем, але через вразливість (CVE-2022-29799) можливо, що код обробки шляху до файлу був вимкнений з базового каталогу обмежень і виконувати довільні скрипти.

Зокрема, при формуванні шляху до файлу до сценарію були використані значення OperationalState і AdministrationState, передані по D-Bus, в яких спеціальні символи не видалялися. Зловмисник може створити власний стан із символами «../» в імені та перенаправити виклик мережевого диспетчера в інший каталог.

Друга вразливість (CVE-2022-29800) пов'язано з умовою гонки: Між перевіркою параметрів сценарію (належить root) і його виконанням пройшов короткий проміжок часу, достатнього, щоб замінити файл і пропустити перевірку сценарію, що належить root. Крім того, networkd-dispatcher не перевіряв символічні посилання, навіть при виконанні сценаріїв через виклик subprocess.Popen, що значно спростило організацію атаки.

Створюється каталог «/tmp/nimbuspwn» і створюється символьне посилання «/tmp/nimbuspwn/poc.d», що вказує на каталог «/sbin», яке використовується для перевірки виконуваних файлів, що належать root.

Для виконуваних файлів «/sbin» у каталозі «/tmp/nimbuspwn» створюються файли з однаковою назвою, наприклад, для файлу «/sbin/vgs» створюється виконуваний файл «/tmp/nimbuspwn/ vgs». , що належить користувачеві без привілеїв, в який поміщається код, який зловмисник хоче виконати.

Сигнал D-Bus надсилається до процесу мережевого диспетчера з OperationalState, встановленим на "../../../tmp/nimbuspwn/poc". Щоб надіслати сигнал у просторі імен "org.freedesktop.network1", ви використовували можливість підключення ваших контролерів до systemd-networkd, наприклад, за допомогою маніпуляцій gpgv або epmd, або ви можете використовувати той факт, що systemd-networkd це не працює за замовчуванням (наприклад, на Linux mint).

Отримавши сигнал, Networkd-dispatcher створює список виконуваних файлів, які належать користувачам root і доступні в каталозі "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", який насправді посилається на "/sbin".

Як тільки буде отримано список файлів, але сценарій ще не виконано, символічне посилання буде перенаправлено з «/tmp/nimbuspwn/poc.d» на «/tmp/nimbuspwn», і мережевий диспетчер буде виконано як корінь. сценарій, розміщений зловмисником.

Проблема виправлено у випуску networkd-dispatcher 2.2, хоча інформації про випуск оновлень за дистрибутивами немає.

В кінці кінців якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   luix - сказав він

    Тисячу й один раз сказано: systemd — це сміття. Надлишкові, погано розроблені, перевантажені, схильні до помилок. Шкода, що він був вбудований в мій улюблений дистрибутив (debian)