Vzdálená zranitelnost v jádru Linuxu, projevující se při použití protokolu TIPC

Byl nalezen zranitelnost v jádru Linux, které zajišťuje provoz síťového protokolu TIPC (Transparent Inter-process Communication), která potenciálně umožňuje spuštění vlastního kódu na úrovni jádra prostřednictvím zaslání speciálně formátovaného síťového paketu. Problém se týká pouze systémů s načteným modulem jádra tipc.ko a nastaveným zásobníkem TIPC, který se obvykle používá v clusterech a ve výchozím nastavení není aktivován v nespecializovaných distribucích Linux.

Je uvedeno, že při sestavování jádra v režimu 'CONFIG_FORTIFY_SRC=y' (používaném v RHEL), který přidává další kontroly hranic do funkce memcpy(), se exploatace omezuje na havarijní zastavení činnosti (jádrso přechází do stavu paniky). Při provádění bez dalších kontrol a při úniku informací o kanárkových značkách používaných pro ochranu zásobníku může být problém využit pro vzdálené provedení kódu s právy jádra. Výzkumníci, kteří problém objevili, tvrdí, že technika exploatace je triviální a bude zveřejněna po celoplošném odstranění zranitelnosti v distribucích.

Zranitelnost je způsobena přetečením zásobníku, které nastává při zpracování paketů, kde hodnota pole s počtem uzlů účastníků domény, kde překračuje 64. Pro ukládání parametrů uzlů v modulu tipc.ko se používá pevné pole 'u32 members[64]', ale při zpracování zadaného v paketu čísla uzlu se neprovádí kontrola hodnoty 'member_cnt', což umožňuje použít hodnoty větší než 64 pro kontrolované přepsání dat v oblasti paměti následující na zásobníku po struktuře 'dom_bef'.

Chyba vedoucí k zranitelnosti byla zavedena 15. června 2016 a byla zařazena do jádra Linux 4.8. Zranitelnost byla odstraněna ve vydáních jádra Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 a 4.9.301. V jádrech většiny distribucí problém zatím zůstává neopraven: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Protokol TIPC byl původně vyvinut společností Ericsson a je určen pro organizaci meziprocesové komunikace v clusterech, přičemž je aktivován především na uzlech clusteru. TIPC může pracovat jak nad Ethernetem, tak na UDP (síťový port 6118). V případě provozu nad Ethernetem může být útok proveden z lokální sítě, a při použití UDP — z globální sítě, pokud port není chráněn firewall. Útok může být také proveden neprivilegovaným lokálním uživatelem hostitele. Pro aktivaci TIPC je nutné načíst modul jádra tipc.ko a nastavit vazbu na síťové rozhraní pomocí netlink nebo utilitky tipc.

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