Уязвимост в OverlayFS, позволяваща повишаване на привилегиите

В ядрото на Linux в реализация на файловата система OverlayFS е установена уязвимост (CVE-2023-0386), която може да бъде използвана за получаване на root-достъп на системи, в които е инсталирана подсистемата FUSE и е позволено монтиране на записи OverlayFS от непривилегирован потребител (от ядрото на Linux 5.11 с активиране на непривилегировани 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, с флагове 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster