V jádře Linuxu byly odhaleny vážné zranitelnosti, které umožňují místnímu uživateli zvýšit své privilegium v systému. Pro všechny zvažované problémy byly připraveny pracovní prototypy exploitů.
- Zranitelnost (CVE-2022-0995) v subsystému sledování událostí watch_queue, která vede k zápisu dat do oblastí paměti jádra mimo vyhrazený buffer. Útok může provést jakýkoli neoprávněný uživatel a může vést ke spuštění jeho kódu s právy jádra. Zranitelnost existuje ve funkci watch_queue_set_size() a souvisí s pokusem o vyčištění všech ukazatelů v seznamu, i když pro ně nebyla přidělena paměť. Problém se projevuje při sestavování jádra s volbou „CONFIG_WATCH_QUEUE=y“, která se používá ve většině distribucí Linuxu.
Zranitelnost byla odstraněna v úpravě přidané do jádra 11. března. Informace o publikaci aktualizací balíků v distribucích lze sledovat na těchto stránkách: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototyp exploitů je již veřejně dostupný a umožňuje získat root přístup při spuštění v Ubuntu 21.10 s jádrem 5.13.0-37.

- Zranitelnost (CVE-2022-27666) v jádrových modulech esp4 a esp6, které implementují ESP transformace (Encapsulating Security Payload) pro IPsec, používané při použití IPv4 a IPv6. Zranitelnost umožňuje místnímu uživateli s běžnými privilegii přepsat objekty v paměti jádra a zvýšit svá privilegium v systému. Problém je způsoben absencí porovnání vyhrazené velikosti paměti a fakticky získaných dat, když maximální velikost zprávy mohla překročit maximální velikost paměti vyhrazené pro strukturu skb_page_frag_refill.
Zranitelnost byla odstraněna v jádře 7. března (opraveno v 5.17, 5.16.15 atd.). Informace o publikaci aktualizací balíků v distribucích lze sledovat na těchto stránkách: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Pracovní prototyp exploitů, umožňující běžnému uživateli získat root přístup v Ubuntu Desktop 21.10 s výchozí konfigurací, již byl umístěn na GitHub. Tvrdí se, že s drobnými úpravami bude exploit také fungovat v Fedoře a Debiánu. Je zajímavé, že exploit byl původně připraven pro soutěž pwn2own 2022, ale vývojáři jádra odhalili a opravili s ním spojenou chybu, takže bylo rozhodnuto zveřejnit podrobnosti o zranitelnosti.
- Dvě zranitelnosti (CVE-2022-1015, CVE-2022-1016) v podsystemu netfilter v modulu nf_tables, který zajišťuje funkčnost paketového filtru nftables. První problém umožňuje místnímu nepřidělenému uživateli dosáhnout zápisu za hranice vyhrazeného bufferu na zásobníku. Přetečení se vyskytuje při zpracování určitým způsobem formátovaných výrazů nftables, které jsou zpracovávány během ověřování indexů definovaných uživatelským pravidlem pro nftables.
Zranitelnost je způsobena tím, že vývojáři předpokládali, že hodnota „enum nft_registers reg“ je jeden byte, zatímco při zapnutí určitých optimalizací může kompilátor podle specifikace C89 použít 32bitovou hodnotu. Vzhledem k této vlastnosti, velikost používaná při kontrolách a alokaci paměti neodpovídá skutečné velikosti dat ve struktuře, což vede k překryvu konce struktury s ukazateli na zásobníku.
Problém může být zneužit k provedení vlastního kódu na úrovni jádra, ale pro úspěšný útok je nutný přístup k nftables, který lze získat v oddělené síťové jmenném prostoru (network namespaces) s právy CLONE_NEWUSER nebo CLONE_NEWNET (například při možnosti spuštění izolovaného kontejneru). Zranitelnost je také úzce spojena s optimalizacemi používanými kompilátorem, které se například zahrnují při sestavení v režimu „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y“. Zneužití zranitelnosti je možné od jádra Linux 5.12.
Druhá zranitelnost v netfilter je způsobena přístupem k již uvolněné paměťové oblasti (use-after-free) v obslužné rutině nft_do_chain a může vést k úniku neinitializovaných oblastí jádra, které lze číst pomocí manipulací s výrazy nftables a použít například k určení adres ukazatelů při vývoji exploitů pro další zranitelnosti. Zneužití zranitelnosti je možné od jádra Linux 5.13.
Zranitelnosti byly opraveny v dnešních opravách jádra 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 a 4.9.309. Informace o vydáních aktualizací balíčků v distribucích můžete sledovat na těchto stránkách: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Výzkumník, který identifikoval problémy, uvedl, že připravil funkční exploity pro obě zranitelnosti, které plánuje zveřejnit za několik dní, po vydání aktualizací balíčků s jádrem v distribucích.
Zdroj: opennet.ru

