Udaljena ranjivost u jezgri Linuxa koja se javlja pri korištenju TIPC protokola

Identificirana je ranjivost (CVE-2022-0435) u modulu kernela Linuxa koji osigurava rad mrežnog protokola TIPC (Transparent Inter-Process Communication), potencijalno dopuštajući izvršavanje koda na razini kernela slanjem posebno dizajnirane mreže paket. Problem utječe samo na sustave s učitanim modulom kernela tipc.ko i konfiguriranim TIPC stogom, koji se obično koristi u klasterima i nije omogućen prema zadanim postavkama na nespecijaliziranim distribucijama Linuxa.

Primjećuje se da je prilikom izgradnje kernela u načinu rada "CONFIG_FORTIFY_SRC=y" (koji se koristi u RHEL-u), koji dodaje dodatne provjere granica funkciji memcpy(), operacija ograničena na hitno zaustavljanje (kernel paničari). Ako se izvrši bez dodatnih provjera i ako procure informacije o canary oznakama koje se koriste za zaštitu hrpe, problem se može iskoristiti za daljinsko izvršavanje koda s pravima jezgre. Istraživači koji su identificirali problem tvrde da je tehnika iskorištavanja trivijalna i da će biti otkrivena nakon općeg uklanjanja ranjivosti u distribucijama.

Ranjivost je uzrokovana preljevom stoga koji se događa prilikom obrade paketa, vrijednost polja s brojem čvorova članova domene u kojem prelazi 64. Za pohranjivanje parametara čvora u modulu tipc.ko, fiksni niz “u32 members[64 ]” se koristi, ali u procesu obrade navedenog u paketu Broj čvora ne provjerava vrijednost "member_cnt", što omogućuje da se vrijednosti veće od 64 koriste za kontrolirano prepisivanje podataka u sljedećem memorijskom području u strukturu "dom_bef" na stogu.

Bug koji je doveo do ranjivosti uveden je 15. lipnja 2016. i uključen je u jezgru Linuxa 4.8. Ranjivost je riješena u izdanjima Linux kernela 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 i 4.9.301. U jezgri većine distribucija problem ostaje neriješen: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

TIPC protokol izvorno je razvio Ericsson, dizajniran za organiziranje međuprocesne komunikacije u klasteru i aktivira se uglavnom na čvorovima klastera. TIPC može raditi preko Etherneta ili UDP-a (mrežni priključak 6118). Kod rada preko Etherneta napad se može izvesti iz lokalne mreže, a kod korištenja UDP-a iz globalne mreže ako port nije pokriven vatrozidom. Napad također može izvršiti neprivilegirani lokalni korisnik hosta. Za aktiviranje TIPC-a morate preuzeti tipc.ko kernel modul i konfigurirati vezanje na mrežno sučelje pomoću netlink-a ili uslužnog programa tipc.

Izvor: opennet.ru

Dodajte komentar