U kernelu Linux otkrivene su iskorištive ranjivosti u nf_tables, watch_queue i IPsec

U kernelu Linux otkrivene su nekoliko opasnih ranjivosti koje omogućuju lokalnom korisniku povećanje njegovih privilegija u sustavu. Za sve razmotrene probleme pripremljeni su radni prototipovi eksploita.

  • Ranjivost (CVE-2022-0995) u podsustavu praćenja događaja watch_queue, koja može dovesti do zapisivanja podataka u područje memorije jezgre izvan dodijeljenog prostora. Napad može izvesti bilo koji neprivilegirani korisnik i dovesti do izvršavanja vlastitog koda s pravima jezgre. Ranjivost se javlja u funkciji watch_queue_set_size() i povezana je s pokušajem čišćenja svih pokazivača na popisu, čak i ako za njih nije dodijeljena memorija. Problem se manifestira pri kompajliranju jezgre s opcijom "CONFIG_WATCH_QUEUE=y", koja se koristi u većini Linux distribucija.

    Ranjivost je otklonjena u promjeni dodanoj u kernel 11. ožujka. Praćenje objave ažuriranja paketa u distribucijama može se obaviti na sljedećim stranicama: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototip eksploita već je javno dostupan i omogućuje dobivanje root pristupa kada se pokrene u Ubuntu 21.10 s kernelom 5.13.0-37.

    U kernelu Linux otkrivene su iskorištive ranjivosti u nf_tables, watch_queue i IPsec
  • Ranjivost (CVE-2022-27666) u modulima jezgre esp4 i esp6 s implementacijom ESP transformacija (Encapsulating Security Payload) za IPsec, koje se koriste pri korištenju IPv4 i IPv6. Ranjivost omogućuje lokalnom korisniku s običnim privilegijama da prepisuje objekte u memoriji jezgre i poveća svoje privilegije u sustavu. Problem je izazvan nedostatkom provjere dodijeljenog veličine memorije i stvarno primljenih podataka, pri čemu maksimalna veličina poruke može premašivati maksimalnu veličinu memorije dodijeljene za strukturu skb_page_frag_refill.

    Ranljivost je ispravljena u jezgru 7. marta (ispravljena u 5.17, 5.16.15 itd.). Praćenje objava ažuriranja paketa u distribucijama može se izvršiti na sledećim stranicama: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Radni prototip exploit-a, koji omogućava običnom korisniku da dobije root pristup u Ubuntu Desktop 21.10 u podrazumevanoj konfiguraciji, već je postavljen na GitHub. Navodi se da će exploit, uz male izmene, takođe raditi na Federaciji i Debijanu. Zanimljivo je da je exploit prvobitno pripremljen za takmičenje pwn2own 2022, ali su programeri jezgra otkrili i ispravili povezanu grešku, pa je odlučeno da budu otkriveni detalji ranjivosti.

  • Dve ranjivosti (CVE-2022-1015, CVE-2022-1016) u podsklopu netfilter u modulu nf_tables, koji osigurava rad paketnog filtra nftables. Prvi problem omogućava lokalnom nepovlašćenog korisniku da zapiše izvan dodeljenog bafera na steku. Prelivanje se događa prilikom obrade određenih na način oblikovanih izraza nftables, obrađivanih u fazi provere indeksa koje postavlja korisnik sa pristupom pravilima nftables.

    Ranjivost je uzrokovana time što su programeri pretpostavljali da je vrednost "enum nft_registers reg" jedan bajt, dok prilikom uključivanja određenih optimizacija kompajler, u skladu sa specifikacijom C89, može koristiti 32-bitnu vrednost. Zbog navedene osobine, veličina koja se koristi prilikom provere i dodeljivanja memorije ne odgovara stvarnoj veličini podataka u strukturi, što dovodi do preklapanja repa strukture sa pokazivačima na steku.

    Problem se može iskoristiti za izvršavanje koda na nivou jezgra, ali za uspešan napad je potreban pristup nftables, koji se može dobiti u odvojenom mrežnom imenskom prostoru (network namespaces) u prisustvu prava CLONE_NEWUSER ili CLONE_NEWNET (na primer, uz mogućnost pokretanja izolovanog kontejnera). Ranjivost je takođe usko povezana sa optimizacijama koje koristi kompajler, koje se, na primer, aktiviraju prilikom izgradnje u režimu "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". Iskorišćavanje ranjivosti moguće je od jezgra Linux 5.12.

    Druga ranjivost u netfilteru uzrokovana je pristupom već oslobođenom dijelu memorije (use-after-free) u handleru nft_do_chain i može dovesti do curenja neinicijaliziranih područja memorije jezgre, koja se mogu pročitati manipulacijama izrazima nftables i iskoristiti, na primjer, za određivanje adresa pokazivača prilikom razvoja eksploita za druge ranjivosti. Eksploatacija ranjivosti moguća je počevši od Linux jezgre 5.13.

    Ranjivosti su otklonjene u današnjim ispravnim ažuriranjima jezgre 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 i 4.9.309. Praćenje objava ažuriranja paketa u distribucijama može se izvršiti na ovim stranicama: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Istraživač koji je otkrio probleme izjavio je da priprema funkcionalne eksploitne alate za obje ranjivosti, koje planira objaviti za nekoliko dana, nakon što distribucije objave ažuriranja paketa s jezgrom.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster