Chyba zabezpečení v zásobníku IPv6 jádra Linuxu, která umožňuje vzdálené spuštění kódu

Byly zveřejněny informace o zranitelnosti CVE-2023-6200) v síťovém zásobníku linuxového jádra, která za určitých okolností umožňuje útočníkovi z místní sítě dosáhnout spuštění jeho kódu odesláním speciálně navrženého paketu ICMPv6 s zpráva RA (Router Advertisement) určená k inzerování informací o routeru.

Zranitelnost lze zneužít pouze z místní sítě a objeví se na systémech s povolenou podporou IPv6 a aktivním parametrem sysctl „net.ipv6.conf.<název_rozhraní_sítě>.accept_ra“ (lze zkontrolovat příkazem „sysctl net.ipv6.conf | grep accept_ra”), která je ve výchozím nastavení v RHEL a Ubuntu zakázána pro externí síťová rozhraní, ale povolena pro rozhraní zpětné smyčky, které umožňuje útok ze stejného systému.

Tato chyba zabezpečení je způsobena sporem, kdy garbage collector zpracovává zastaralé záznamy fib6_info, což může vést k přístupu k již uvolněné oblasti paměti (use-after-free). Při příjmu paketu ICMPv6 s reklamní zprávou směrovače (RA, Router Advertisement) síťový zásobník zavolá funkci ndisc_router_discovery(), která, pokud zpráva RA obsahuje informace o životnosti trasy, zavolá funkci fib6_set_expires() a vyplní gc_link. struktura. Chcete-li vyčistit zastaralé položky, použijte funkci fib6_clean_expires(), která odpojí položku v gc_link a vymaže paměť používanou strukturou fib6_info. V tomto případě existuje určitý okamžik, kdy paměť pro strukturu fib6_info již byla uvolněna, ale odkaz na ni je nadále ve struktuře gc_link.

Chyba zabezpečení se objevila od větve 6.6 a byla opravena ve verzích 6.6.9 a 6.7. Stav opravy zranitelnosti v distribucích lze posoudit na těchto stránkách: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Mezi distribucemi, které dodávají balíčky s jádrem 6.6, můžeme zaznamenat Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva a Manjaro; v jiných distribucích je možné, že změna s chybou je zpětně portována do balíčků se staršími větvemi jádra (např. například v Debianu je zmíněno, že balíček s jádrem 6.5.13 je zranitelný, zatímco problematická změna se objevila ve větvi 6.6). Jako řešení zabezpečení můžete zakázat IPv6 nebo nastavit parametry „net.ipv0.conf.*.accept_ra“ na 6.

Zdroj: opennet.ru

Přidat komentář