Zranitelnost v Glibc ld.so, která umožňuje získat práva root v systému

Společnost Qualys odhalila závažnou zranitelnost (CVE-2023-4911) v linkeru ld.so, který je součástí systémové C knihovny Glibc (GNU libc). Tato zranitelnost umožňuje lokálnímu uživateli zvýšit své privilegium v systému prostřednictvím specificky vytvořených dat ve proměnné prostředí GLIBC_TUNABLES před spuštěním spustitelného souboru s flagem suid root, například /usr/bin/su.

Možnost úspěšného zneužití zranitelnosti byla demonstrována ve Fedora 37 a 38, Ubuntu 22.04 a 23.04, Debian 12 a 13. Předpokládá se, že zranitelnost se projevuje i v dalších distribucích, které používají Glibc. Distribuce založené na systémové C knihovně Musl, jako je Alpine Linux, nejsou tímto problémem postiženy. Zranitelnost byla odstraněna v patchi, který byl přidán 2. října. Sledujte vydání aktualizací balíčků v distribucích na stránkách Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.

Zranitelnost byla způsobena změnou provedenou v dubnu 2021, která byla součástí vydání glibc 2.34. Kvůli chybě v kódu parsování řetězce uvedeného v proměnné prostředí GLIBC_TUNABLES, nesprávná kombinace parametrů v této proměnné vede k zápisu rozparsovaného hodnoty za hranice přiděleného bufferu. Problém se projevuje, když místo běžných sekvencí "name=val" jsou parametry zadány ve formě s dvojitým přiřazením "name=name=val". V takovém případě je přiřazení zpracováno dvakrát, nejprve jako "name=name=val", a poté jako "name=val". V důsledku podobného dvojího zpracování vzniká výsledek "name=name=val:name=val", jehož velikost přesahuje velikost bufferu tunestr.

Výzkumníci vyvinuli stabilně fungující exploit, který umožňuje získat práva root při použití prakticky s jakýmikoliv programy s flagem suid root. Výjimku tvoří utilita sudo (mění hodnotu ELF RUNPATH), utilitky chage a passwd v Fedoře (chráněny speciálními pravidly SELinux) a utilita snap-confine v Ubuntu (chráněna speciálními pravidly AppArmor). Navržená metoda exploitace také nefunguje v RHEL 8 a RHEL 9, i když tyto verze jsou náchylné k zranitelnosti (pro útok je potřeba vytvořit jiný exploit). Kód exploitu bude zveřejněn později po celoplošném odstranění zranitelnosti. Zjistit, zda je vaše systém náchylný k zranitelnosti, můžete příkazem uvedeným níže, který v případě problému skončí chybou: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '192x' 1`" \/usr\/bin\/su —help

Samostatně se uvádí odstranění v Glibc ještě dvou zranitelností:

  • CVE-2023-4806 — přístup k již uvolněné oblasti paměti (use-after-free) ve funkci getaddrinfo(), projevující se, když NSS plugin realizuje pouze call-back volání „_gethostbyname2_r“ a „_getcanonname_r“, ale nepodporuje volání „_gethostbyname3_r“. Pro exploataci zranitelnosti musí DNS server vrátit pro požadovaného hosta velké množství adres IPv6 a IPv4, což povede k havárii procesu, který vyvolal funkci getaddrinfo pro rodinu AF_INET6 při nastavení flagů AI_CANONNAME, AI_ALL a AI_V4MAPPED.
  • CVE-2023-5156 — únik obsahu paměti při volání funkce getaddrinfo pro rodinu adres AF_INET6 se nastavenými flagy AI_CANONNAME, AI_ALL a AI_V4MAPPED.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster