Уразливість в ядрі дозволяє ескалацію привілеїв за допомогою маніпулювання каталогами

вразливість systemd

Останнім часом Дослідники безпеки компанії Qualys (компанія хмарної безпеки, дотримання вимог та супутніх послуг) оприлюднив деталі вразливості що вони виявили і що вони впливають на ядро ​​Linux.

CVE-2021-33909 впливає на ядро ​​і дозволяє локальному користувачеві досягти виконання коду і посилити привілеї, маніпулюючи вкладеними каталогами.

Уразливість пов'язана з відсутністю перевірки результату перетворення size_t у тип int перед виконанням операцій над кодом seq_file, який створює файли з послідовності записів. Відсутність перевірки може призвести до запису в область за межами буфера при створенні, монтажі та скиданні структури каталогів з дуже високим рівнем вкладеності (розмір шляху більше 1 Гб).

Будь-який непривілейований користувач може отримати root права на вразливому хості, використовуючи цю вразливість у конфігурації за замовчуванням.

В результаті зловмисник може отримати 10-байтовий рядок "// видалено" зі зміщенням "- 2 Гб - 10 байт", вказуючи на область безпосередньо перед виділеним буфером.

Загроза вразливості ускладнюється тим, що дослідники змогли підготувати функціональні подвиги на Ubuntu 20.04, Debian 11 та Fedora 34 у налаштуваннях за замовчуванням. Відзначається, що інші розподіли не перевірені, але теоретично вони також сприйнятливі до проблеми і можуть атакуватися.

Успішне використання цієї вразливості дозволяє будь-якому непривілейованому користувачеві отримати root права на вразливому хості. Дослідники безпеки Qualys змогли самостійно перевірити вразливість, розробити експлойт і отримати повні кореневі привілеї на установках за замовчуванням Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 та Fedora 34 Workstation. Інші дистрибутиви Linux, ймовірно, можуть бути вразливими та, можливо, придатними для використання.

Робота експлойта зводиться до створення ієрархії приблизно з мільйона каталогів вкладений через виклик mkdir () щоб досягти розміру шляху до файлу більше 1 Гб.

Цей каталог монтується на прив'язку, змонтований в окремому просторі імен користувачів, після чого запускається функція rmdir () для його видалення. Паралельно створюється потік, який завантажує невелику програму eBPF, яка зависає на етапі після перевірки псевдокоду eBPF, але до його компіляції JIT.

У непривілейованому просторі імен ідентифікатора користувача файл / proc / self / mountinfo відкривається і зчитує довгий шлях до каталогу, змонтований за допомогою bind-mount, в результаті чого рядок "// видалено" записується в область перед початком буфера. Позиція для написання рядка обрана таким чином, що вона замінює інструкцію у вже перевіреній, але ще не складеній програмі eBPF.

Крім того, на рівні програми eBPF, неконтрольоване виписування з буфера перетворюється на можливість читання / запису контролюється в інших структурах ядра, маніпулюючи структурами btf та map_push_elem.

Потім експлойт поміщає буфер modprobe_path [] в пам'ять ядра і перезаписує в ньому шлях "/ sbin / modprobe", дозволяючи запускати будь-який виконуваний файл як root, якщо здійснено виклик request_module (), який виконується, наприклад, під час створення розетка мережевого зв'язку ...

Дослідники запропонували кілька рішень, які ефективні лише для конкретного подвигу, але вони не вирішують саму проблему.

Як такий рекомендується встановити для параметра "/ proc / sys / kernel / unprivileged_userns_clone" значення 0, щоб відключити монтування каталогів в окремому просторі імен userid, а "/ proc sys / kernel / unprivileged_bpf_disabled" - 1, щоб вимкнути завантаження програм eBPF в ядро.

На додаток до того, що всім користувачам дистрибутива Linux також рекомендується оновити свою систему, щоб мати відповідний патч. Проблема була очевидною з липня 2014 року і це впливає на версії ядра з 3.16. Виправлення вразливості було погоджено із спільнотою та прийнято в ядро ​​19 липня.

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


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

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

*

*

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