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

Byla identifikována chyba zabezpečení (CVE-2022-4415) v komponentě systemd-coredump, která zpracovává základní soubory generované po zhroucení procesů, což umožňuje nepřivilegovanému místnímu uživateli určit obsah paměti privilegovaných procesů spuštěných s příznakem suid root. Problém s výchozí konfigurací byl potvrzen v distribucích openSUSE, Arch, Debian, Fedora a SLES.

Chyba zabezpečení je způsobena nedostatečným správným zpracováním parametru fs.suid_dumpable sysctl v systemd-coredump, který, když je nastaven na výchozí hodnotu 2, umožňuje generování výpisů jádra pro procesy s příznakem suid. Rozumí se, že základní soubory procesů suid napsané jádrem musí mít přístupová práva nastavena tak, aby umožňovala čtení pouze uživateli root. Obslužný program systemd-coredump, který je volán jádrem k ukládání základních souborů, ukládá základní soubor pod ID uživatele root, ale navíc poskytuje přístup pro čtení k základním souborům založený na ACL na základě ID vlastníka, který proces původně spustil. .

Tato funkce umožňuje stahovat základní soubory bez ohledu na skutečnost, že program může změnit ID uživatele a spustit jej se zvýšenými oprávněními. Útok se scvrkává na skutečnost, že uživatel může spustit suid aplikaci a poslat jí signál SIGSEGV a poté načíst obsah základního souboru, který obsahuje paměťový úsek procesu během abnormálního ukončení.

Uživatel může například spustit „/usr/bin/su“ a v jiném terminálu ukončit jeho provádění příkazem „kill -s SIGSEGV `pidof su`“, po kterém systemd-coredump uloží soubor jádra do /var /lib/systemd/ adresář coredump a nastaví pro něj ACL, který umožňuje čtení aktuálnímu uživateli. Protože obslužný program suid 'su' čte obsah souboru /etc/shadow do paměti, může útočník získat přístup k informacím o hashích hesel všech uživatelů v systému. Nástroj sudo není náchylný k útoku, protože zakazuje generování souborů jádra pomocí ulimit.

Podle vývojářů systemd se zranitelnost objevuje počínaje vydáním systemd 247 (listopad 2020), ale podle výzkumníka, který problém identifikoval, je ovlivněno i vydání 246. Chyba zabezpečení se objeví, pokud je systemd zkompilován s knihovnou libacl (ve výchozím nastavení všechny populární distribuce). Oprava je aktuálně dostupná jako patch. Opravy v distribucích můžete sledovat na následujících stránkách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Jako řešení zabezpečení můžete nastavit sysctl fs.suid_dumpable na 0, což zakáže odesílání výpisů do obslužné rutiny systemd-coredump.

Zdroj: opennet.ru

Přidat komentář