Вразливість понад 15 років тому в Netfilter дозволила ескалацію привілеїв

Кілька днів тому була опублікована новина про це у мережі Netfilter виявлено вразливість (підсистема ядра Linux, що використовується для фільтрації та модифікації мережевих пакетів), яка дозволяє локальному користувачеві отримати root права в системінавіть перебуваючи в ізольованому контейнері.

Уразливість CVE-2021-22555 це проблема, яка існує з ядра 2.6.19, запущений 15 років тому і є викликана помилкою в драйверах IPT_SO_SET_REPLACE та IP6T_SO_SET_REPLACE, що спричиняє переповнення буфера при надсиланні спеціально оформлених параметрів через виклик setsockopt у режимі compat.

Можливо, багато хто в цей момент задаватиметься питанням про те, як можливо, що недолік ядра Linux міг залишатися непоміченим так довго, і відповідь на це полягає в тому, що, незважаючи на недолік, який був присутній з Linux 2.6.19, вразливість була знайдена за допомогою коду аудит, хоча код С не можна було відтворити, тому його не можна було використовувати, оскільки на той час не було знайдено необхідних ресурсів для ескалації привілеїв.

Наприклад, підтримка непривілейованих просторів імен користувачів знаходиться в ядрі 3.8. Крім того, деякі дистрибутиви мають патч, який додає sysctl для вимкнення непривілейованих просторів імен користувачів.

За звичайних обставин лише користувач root може викликати compat_setsockopt (), але необхідні дозволи для нападу їх також може отримати непривілейований користувач у системах із увімкненими просторами імен користувачів.

CVE-2021-22555 - це 15-річна уразливість стека поза записом стека в Linux Netfilter, яка є досить потужною, щоб обійти всі сучасні обмеження безпеки та забезпечити виконання коду ядра.

Як таке, описано, що локальний користувач може створити контейнер з окремим кореневим користувачем і використовувати звідти вразливістьí. Наприклад, "простори імен користувачів" включені за замовчуванням в Ubuntu та Fedora, але не в Debian та RHEL.

Цю вразливість можна використати, частково перезаписавши файл m_list->nextвказівник msg_msgструктура і досягнення вільного після використання. Це досить потужно, щоб ваш код ядра працював в обхід KASLR, SMAP та SMEP.

Крім того, проблема виникає у функції xt_compat_target_from_user () через неправильний розрахунок обсягу пам'яті при збереженні структур ядра після перетворення з 32-розрядного в 64-розрядне подання.

Як такий, згадується, що помилка дозволяє записати чотири "нульових" байта в будь-яку позицію поза буфером призначений, обмежений зміщенням 0x4C. Через це згадується, що цієї функції виявилося достатньо для створення експлоїту що дозволяє отримати права root: видаливши вказівник m_list-> next у структурі msg_msg, були створені умови доступу до даних після звільнення пам'яті (use-after-free), яка потім використовувалася для отримання інформації про адреси та зміни до інших структур шляхом маніпулювання системним викликом msgsnd ().

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

Проекти Debian, Arch Linux та Fedora вже генерували оновлення пакетів. Починаючи з Ubuntu, розробляються оновлення RHEL та SUSE. Оскільки помилка є серйозною, придатною для використання на практиці і дозволяє вирватися з контейнера, Google оцінив своє відкриття в 10,000 XNUMX доларів і подвоїв винагороду для дослідника, який виявив вразливість, та для ідентифікації методу уникнення ізоляції контейнерів Kubernetes на кластері kCTF.

Для тестування підготовлений робочий прототип експлоїту що обходить механізми захисту KASLR, SMAP та SMEP.

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


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

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

*

*

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