V jadre Linux bolo odhalených niekoľko nebezpečných zraniteľností, ktoré umožňujú lokálnemu používateľovi zvýšiť svoje privilégia v systéme. Pre všetky zvažované problémy boli pripravené funkčné prototypy exploitov.
- Zraniteľnosť (CVE-2022-0995) v subsystéme sledovania udalostí watch_queue, ktorá vedie k zápisu údajov do oblastí pamäte jadra mimo vyhradeného bufferu. Útok môže vykonať akýkoľvek neprivilégovaný používateľ a viesť k spusteniu vlastného kódu s právami jadra. Zraniteľnosť sa nachádza vo funkcii watch_queue_set_size() a súvisí s pokusom o vymazanie všetkých ukazovateľov na zozname, aj keď pre nich nebola vyhradená pamäť. Problém sa prejavuje pri kompilácii jadra s možnosťou „CONFIG_WATCH_QUEUE=y“, ktorá sa používa vo väčšine distribúcií Linuxu.
Zraniteľnosť bola odstránená v zmene pridanej do jadra 11. marca. Sledovanie publikácie aktualizácií balíkov v distribúciách je možné na týchto stránkach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototyp exploitov je už verejne dostupný a umožňuje získať prístup root pri spustení na Ubuntu 21.10 s jadrom 5.13.0-37.

- Zraniteľnosť (CVE-2022-27666) v moduloch jadra esp4 a esp6 s implementáciou ESP-transformácií (Encapsulating Security Payload) pre IPsec, používaných pri IPv4 a IPv6. Zraniteľnosť umožňuje lokálnemu používateľovi s bežnými privilégii prepísať objekty v pamäti jadra a zvýšiť svoje privilégiá v systéme. Problém je spôsobený nedostatkom kontroly vyhradeného veľkosti pamäte a skutočne získaných údajov, pričom maximálna veľkosť správy mohla presahovať maximálnu veľkosť pamäte vyhradenej pre štruktúru skb_page_frag_refill.
Zraniteľnosť bola odstránená v jadre 7. marca (opravená v 5.17, 5.16.15 atď.). Sledovanie publikácie aktualizácií balíkov v distribúciách je možné na týchto stránkach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Funkčný prototyp exploitov, ktorý umožňuje bežnému používateľovi získať prístup root v Ubuntu Desktop 21.10 v predvolenej konfigurácii, už bol zverejnený na GitHub. Uvádza sa, že pri drobných úpravách bude exploit fungovať aj v Fedore a Debiane. Zaujímavé je, že exploit bol pôvodne pripravený na súťaže pwn2own 2022, ale vývojári jadra odhalili a opravili s tým spojenú chybu, preto sa rozhodlo zverejniť podrobnosti o zraniteľnosti.
- Dve zraniteľnosti (CVE-2022-1015, CVE-2022-1016) v subsystéme netfilter v module nf_tables, ktorý zaisťuje činnosť paketového filtra nftables. Prvá problém umožňuje lokálnemu nepriviligovanému používateľovi dosiahnuť zápis mimo vyhradeného vyrovnávacieho buffera na zásobníku. Pretečenie sa vyskytuje pri spracovaní špeciálne formátovaných výrazov nftables, ktoré sa spracovávajú pri kontrole indexov zadaných používateľom, ktorý má prístup k pravidlám nftables.
Zraniteľnosť je spôsobená tým, že vývojári predpokladali, že hodnota „enum nft_registers reg“ je jedným bajtom, zatiaľ čo pri zapnutí určitých optimalizácií môže kompilátor podľa špecifikácie C89 používať 32-bitovú hodnotu. Vzhľadom na túto vlastnosť sa veľkosť použitá pri kontrole a prideľovaní pamäte nezhoduje so skutočnou veľkosťou dát v štruktúre, čo vedie k prekrytiu konca štruktúry na ukazovatele v zásobníku.
Problém môže byť zneužitý na vykonanie vlastného kódu na úrovni jadra, ale na úspešný útok je potrebný prístup k nftables, ktorý je možné získať v oddelenom sieťovom namespace (network namespaces) s právami CLONE_NEWUSER alebo CLONE_NEWNET (napríklad pri možnosti spustenia izolovaného kontajnera). Zraniteľnosť je tiež úzko spojená s použitými optimalizáciami kompilátora, ktoré sa aktivujú napríklad pri kompilácii v režime „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y“. Zneužitie zraniteľnosti je možné od jadra Linux 5.12.
Druhá zraniteľnosť v netfilter je spôsobená prístupom k už uvoľnenej oblasti pamäte (use-after-free) v spracovateľovi nft_do_chain a môže viesť k úniku neinicializovaných oblastí pamäte jadra, ktoré môžu byť čítané prostredníctvom manipulácií s výrazmi nftables a použité, napríklad, na určenie adries ukazovateľov pri vývoji exploitov pre iné zraniteľnosti. Zneužitie zraniteľnosti je možné od jadra Linux 5.13.
Zraniteľnosti boli odstránené v dnešných opravách jadra 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. Informácie o publikovaní aktualizácií balíkov v distribúciách je možné sledovať na týchto stránkach: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Výskumník, ktorý identifikoval problémy, uviedol, že pripravuje funkčné exploitácie pre obidve zraniteľnosti, ktoré plánuje zverejniť o niekoľko dní po tom, ako distribúcie vydajú aktualizácie balíkov s jadrom.
Zdroj: opennet.ru

