V jádře Linuxu v implementaci souborového systému OverlayFS byla zjištěna zranitelnost (CVE-2023-0386), kterou lze využít k získání root přístupu na systémech, kde je nainstalována podsystém FUSE a je povoleno montování oddílů OverlayFS neprivilegovaným uživatelům (od jádra Linux 5.11 s povolením neprivilegovaných uživatelských jmen). Problém byl vyřešen ve větvi jádra 6.2. Publikaci aktualizací balíků v distribucích lze sledovat na stránkách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Útok se provádí prostřednictvím kopírování souborů s flagy setgid/setuid z oddílu, připojeného v režimu nosuid, do oddílu OverlayFS, který má vrstvu spojenou s oddílem, umožňujícím vykonávání souborů suid. Zranitelnost je blízká problému CVE-2021-3847, zjištěnému v roce 2021, ale liší se nižšími požadavky na zneužití — ve starém problému byly vyžadovány manipulace s xattrs, které jsou omezené při použití prostorů jmen uživatelského ID (user namespace), zatímco v novém problému se používají bity setgid/setuid, které nejsou v user namespace speciálně zpracovány.
Algoritmus provádění útoku:
- Pomocí podsystému FUSE se připojuje FS, ve které je k dispozici spustitelný soubor s flagy setuid/setgid, přináležející uživateli root, který je dostupný všem uživatelům pro zápis. Při připojení FUSE nastavuje režim 'nosuid'.
- Zruší se (unshare) prostory jmen uživatelů a bodů montování (user/mount namespace).
- Připojuje se OverlayFS s určením dříve vytvořeného FS v FUSE jako dolní vrstvy a horní vrstvy na základě adresáře, který umožňuje zápis. Adresář horní vrstvy musí být umístěn v FS, při jejímž montování se nepoužívá flag 'nosuid'.
- Pro soubor suid v oddíle FUSE se pomocí utility touch změní čas modifikace, což vede k jeho zkopírování do horní vrstvy OverlayFS.
- Při kopírování jádro nepř removes flagy setgid/setuid, což způsobuje, že soubor se objeví v oddílu, který umožňuje zpracování setgid/setuid.
- Pro získání práv root stačí spustit soubor s flagy setgid/setuid z adresáře připojeného k horní vrstvě OverlayFS.
Dále lze poznamenat, že výzkumníci z týmu Google Project Zero zveřejnili informace o třech zranitelnostech, které byly opraveny v hlavní větvi jádra Linux 5.15, ale nebyly přeneseny do balíčků s jádrem z RHEL 8.x/9.x a CentOS Stream 9.
- CVE-2023-1252 — přístup k již uvolněné oblasti paměti ve struktuře ovl_aio_req při souběžném provádění několika operací v OverlayFS nasazeném nad FS Ext4. Potenciálně může zranitelnost umožnit zvýšení oprávnění v systému.
- CVE-2023-0590 — přístup k již uvolněné oblasti paměti ve funkci qdisc_graft(). Předpokládá se, že exploatace se omezuje na havarijní ukončení.
- CVE-2023-1249 — přístup k již uvolněné oblasti paměti v kódu pro zápis coredump, který vzniká kvůli chybějícímu volání mmap_lock ve file_files_note. Předpokládá se, že exploatace se omezuje na havarijní ukončení.
Zdroj: opennet.ru
