Dvije nove ranjivosti su otkrivene u eBPF podsistemu koji omogućava izvršavanje rukovalaca unutar kernela. Linux u posebnoj virtuelnoj mašini sa JIT-om. Obje ranjivosti omogućavaju izvršavanje koda sa privilegijama kernela, izvan izolovane eBPF virtuelne mašine. Informacije o problemima objavio je tim Zero Day Initiative, koji vodi takmičenje Pwn2Own, a koje je ove godine demonstriralo tri napada. Ubuntu Linux, koji je iskoristio prethodno nepoznate ranjivosti (nije objavljeno da li su ranjivosti u eBPF-u povezane s ovim napadima).
- CVE-2021-3490 - Ranjivost je uzrokovana nedostatkom 32-bitne provjere izvan granica prilikom izvođenja operacija AND, OR i XOR u eBPF ALU32. Napadač može iskoristiti ovu grešku za čitanje i pisanje podataka izvan granica dodijeljenog bafera. Problem sa XOR operacijama pojavljuje se počevši od verzije kernela 5.7-rc1, i I i OR - počevši od 5.10-rc1.
- CVE-2021-3489 - Ranjivost je uzrokovana greškom u implementaciji prstenastog bafera i nastala je zbog činjenice da funkcija bpf_ringbuf_reserve nije provjerila mogućnost da veličina dodijeljene memorijske regije može biti manja od stvarne veličine od ringbufa. Problem se pojavljuje od izdanja 5.8-rc1.
Status ispravki ranjivosti u distribucijama može se pratiti na ovim stranicama: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Ispravke su također dostupne kao zakrpe (CVE-2021-3489, CVE-2021-3490). Iskorištavanje ranjivosti ovisi o tome ima li korisnik pristup sistemskom pozivu eBPF. Na primjer, u zadanoj konfiguraciji u RHEL-u, iskorištavanje ranjivosti zahtijeva da korisnik ima CAP_SYS_ADMIN privilegije.
Posebno treba napomenuti još jednu ranjivost u kernelu. Linux — CVE-2021-32606, koji omogućava lokalnom korisniku da eskalira svoje privilegije na root. Problem se manifestuje počevši od kernela. Linux 5.11 i uzrokovan je stanjem utrke u implementaciji CAN ISOTP protokola, koje omogućava promjenu parametara povezivanja socketa zbog nedostatka odgovarajućih zaključavanja postavljenih u funkciji isotp_setsockopt() prilikom obrade CAN_ISOTP_SF_BROADCAST zastavice.
Nakon što se ISOTP utičnica zatvori, vezanje za utičnicu primatelja ostaje na snazi, koja može nastaviti koristiti strukture povezane s utičnicom nakon što se memorija povezana s njima oslobodi (besplatno korištenje zbog poziva isotp_sock strukture koji je već oslobođen kada se pozove isotp_rcv(). Kroz manipulaciju podacima, možete nadjačati pokazivač na funkciju sk_error_report() i izvršiti svoj kod na nivou kernela.
izvor: opennet.ru
