Odstraněná zranitelnost v implementaci protokolu TIPC v jádře Linux

V dodávce jádra Linux byla identifikována kritická zranitelnost síťového protokolu TIPC (Transparent Inter-process Communication) (CVE-2021-43267), která umožňuje vzdálené provedení vlastního kódu s privilegii jádra prostřednictvím odeslání speciálně vytvořeného síťového paketu. Nebezpečí problému zmírňuje skutečnost, že pro útok je vyžadováno explicitní zapnutí podpory TIPC v systému (načtení a nastavení modulu jádra tipc.ko), což v nespecializovaných distribucích Linuxu není ve výchozím nastavení provedeno.

Protokol TIPC je podporován od jádra Linux 3.19, ale kód vedoucí k zranitelnosti byl zahrnut do jádra 5.10. Zranitelnost byla odstraněna v jádrech 5.15.0, 5.10.77 a 5.14.16. Problém se vyskytuje a dosud nebyl vyřešen v Debianu 11, Ubuntu 21.04/21.10, SUSE (v ještě nevydané větvi SLE15-SP4), RHEL (dosud není specifikováno, zda bylo zranitelné opraveno) a Fedoře. Aktualizace jádra byla již vydána pro Arch Linux. Distribuce s jádrem starším než 5.10, jako Debian 10 a Ubuntu 20.04, nejsou tomuto problému vystaveny.

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.

Zranitelnost se projevuje ve funkci tipc_crypto_key_rc a je způsobena nedostatečnou kontrolou shody mezi uvedenou a skutečnou velikostí dat při rozboru paketů typu MSG_CRYPTO, které se používají k získání šifrovacích klíčů od jiných uzlů v clusteru za účelem následného dešifrování zpráv odesílaných z těchto uzlů. Velikost dat kopírovaných do paměti se počítá jako rozdíl mezi hodnotami polí velikosti zprávy a velikosti hlavičky, ale bez ohledu na skutečnou velikost zasílaného názvu šifrovacího algoritmu a obsahu klíče. Předpokládá se, že velikost názvu algoritmu je pevná, a pro klíč je navíc zaslán samostatný atribut s velikostí, přičemž útočník může v tomto atributu uvést hodnotu, která se liší od skutečné, což povede k přepsání konce zprávy mimo vyhrazený buffer. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; unsigned int keylen; d/* v bajtech *\/ char key[]; };

Odstraněná zranitelnost v implementaci protokolu TIPC v jádře Linux


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