Zranitelnost v systemd-coredump, která umožňuje určit obsah paměti suid programů

V komponentě systemd-coredump, která zajišťuje zpracování core souborů generovaných po havárii procesů, byla zjištěna zranitelnost (CVE-2022-4415), která umožňuje privilegovanému místnímu uživateli zjistit obsah paměti privilegovaných procesů spuštěných s příznakem suid root. Přítomnost problému v konfiguraci výchozím nastavení byla potvrzena v distribucích openSUSE, Arch, Debian, Fedora a SLES.

Zranitelnost je způsobena nedostatečným zpracováním sysctl parametru fs.suid_dumpable v systemd-coredump, který při výchozím nastavení 2 povoluje generování core dumpů pro procesy s příznakem suid. Předpokládá se, že jádrem zapisované core soubory suid procesů by měly mít práva pro čtení pouze pro uživatele root. Nástroj systemd-coredump, který je jádrem volán k uložení core souborů, ukládá core soubor pod identifikátorem root, ale dále poskytuje přístup k core souborům na základě ACL, která umožňuje čtení na základě identifikátoru vlastníka, který proces původně spustil.

Tato vlastnost umožňuje načítání core souborů bez ohledu na to, že program může změnit identifikátor uživatele a běžet s vyššími privilegii. Útok spočívá v tom, že uživatel může spustit suid aplikaci a poslat jí signál SIGSEGV, po kterém může načíst obsah core souboru, který zahrnuje úsek paměti procesu během havárie.

Například uživatel může spustit „/usr/bin/su“ a v jiném terminálu ukončit jeho vykonávání příkazem „kill -s SIGSEGV `pidof su`“, po čemž systemd-coredump uloží core soubor do adresáře /var/lib/systemd/coredump, přičemž pro něj nastaví ACL, která umožňuje čtení aktuálnímu uživateli. Protože suid nástroj ‘su’ čte z paměti obsah /etc/shadow, útočník může získat přístup k informacím o hešovaných heslech všech uživatelů v systému. Nástroj sudo útoku není náchylný, protože zakazuje generaci core souborů prostřednictvím ulimit.

Podle tvrzení vývojářů systemd se zranitelnost projevuje od vydání systemd 247 (listopad 2020), ale podle slov výzkumníka, který problém zjistil, je zranitelná i verze 246. Zranitelnost se projeví, pokud je systemd sestaven s knihovnou libacl (což je ve všech populárních distribucích standardně). Opravy jsou zatím dostupné ve formě záplaty. Stav oprav v distribucích lze sledovat na následujících stránkách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Jako dočasné řešení ochrany lze nastavit sysctl fs.suid_dumpable na hodnotu 0, čímž se zakáže přenos dumpů do zpracovatele systemd-coredump.

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