Вразливість у OverlayFS, що дозволяє підвищити свої привілеї

У ядрі Linux у реалізації файлової системи OverlayFS виявлено вразливість (CVE-2023-0386), яку можна використовувати для отримання root-доступу на системах, в яких встановлена ​​підсистема FUSЕ і дозволено монтування розділів OverlayFS непривілейованим користувачем (починаючи з ядра 5.11 Linux). user namespace). Проблема усунена у гілці ядра 6.2. Публікацію оновлень пакетів у дистрибутивах можна простежити на сторінках: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Атака проводиться через копіювання файлів з прапорами setgid/setuid з розділу, примонтованого в режимі nosuid, розділ OverlayFS, має шар, пов'язаний з розділом, що допускає виконання suid-файлів. Вразливість близька до проблеми CVE-2021-3847, виявленої в 2021 році, але відрізняється нижчими вимогами до експлуатації - у старій проблемі були потрібні маніпуляції з xattrs, які обмежені при використанні просторів імен ідентифікаторів користувача (user namespace), а в новій проблемі setgid/setuid, які спеціально не обробляються в user namespace.

Алгоритм здійснення атаки:

  • За допомогою підсистеми FUSE монтується ФС, в якій є файл root, що належить користувачеві root, з прапорами setuid/setgid, доступним всім користувачам на запис. При монтуванні FUSE виставляє режим "nosuid".
  • Скасуються (unshare) простору імен користувачів та точок монтування (user/mount namespace).
  • Монтується OverlayFS із зазначенням раніше створеної в FUSE ФС як нижній шар і верхній шар на базі каталогу, що допускає можливість запису. Каталог верхнього шару повинен розміщуватись у ФС, при монтуванні якої не використовується прапор «nosuid».
  • Для suid-файлу в FUSE-розділі утилітою touch змінюється час модифікації, що призводить до копіювання у верхній шар OverlayFS.
  • При копіюванні ядро ​​не видаляє прапори setgid/setuid, що призводить до того, що файл з'являється в розділі, що дозволяє обробляти setgid/setuid.
  • Для отримання прав root достатньо запустити файл із прапорами setgid/setuid з каталогу, прикріпленого до верхнього шару OverlayFS.

Додатково можна відзначити розкриття дослідниками з Google Project Zero відомостей про три вразливості, які були виправлені в основній гілці ядра Linux 5.15, але не були перенесені в пакети з ядром з RHEL 8.x/9.x і CentOS Stream 9.

  • CVE-2023-1252 — звернення до звільненої області пам'яті в структурі ovl_aio_req при одночасному скоєнні кількох операцій в OverlayFS, розгорнутій поверх ФС Ext4. Потенційно вразливість дозволяє підвищити свої привілеї у системі.
  • CVE-2023-0590 — звернення до звільненої області пам'яті у функції qdisc_graft(). Передбачається, що експлуатація обмежується аварійним завершенням.
  • CVE-2023-1249 — звернення до звільненої області пам'яті в коді запису coredump, що виникає через пропущений виклик mmap_lock в file_files_note. Передбачається, що експлуатація обмежується аварійним завершенням.

Джерело: opennet.ru

Додати коментар або відгук