Nedavno se na internetu pojavila vijest o otkriću nove ranjivosti u Linuxu koja je kategorizirana kao "visoka ozbiljnost" i utječe na sva jezgra od verzije 5.8 nadalje, kao i na derivate, uključujući Android.
Poznata kao Dirty Pipe, omogućava prepisivanje podataka u datotekama samo za čitanje i može dovesti do eskalacije privilegija ubrizgavanjem koda u "root" procese.
Iako je već zakrpljen u glavnom Linux kernelu, greška bi se mogla iskoristiti u obliku eksploatacije eskalacije privilegija na svim uređajima koji koriste Linux kernel verziju 5.8 ili noviju.
To također znači da je gomila novoizdanih Android pametnih telefona, poput Samsung Galaxy S22 i Google Pixel 6, također ranjiva, sve dok svaki uređaj ne dobije odgovarajuću zakrpu kernela od odgovarajućeg OEM-a.
O Dirty Pipeu
Ranjivost je otkrio istraživač sigurnosti Max Kellerman i katalogizirao je kao (CVE-2022-0847); trebalo je nekoliko mjeseci da se pronađe iskorištavanje koje dokazuje koncept.
Ranjivost omogućava neprivilegovanom korisniku da ubacuje i prepisuje podatke u datoteke samo za čitanje, uključujući SUID procese koji se izvršavaju kao root. Kolokvijalni nadimak izgleda da je igra riječi sa zloglasnom greškom Dirty Cow i Linux mehanizmom koji se naziva pipelining za prosljeđivanje poruka između procesa, budući da se potonji koristi tokom rutine iskorištavanja.
Sve je počelo prije godinu dana sa tiketom za podršku u vezi sa oštećenim fajlovima. Korisnik se požalio da se preuzete evidencije pristupa ne mogu dekomprimirati. I zaista, postojala je korumpirana datoteka dnevnika na jednom od servera evidencije; mogao biti dekomprimiran, ali gzip je prijavio CRC grešku. Nisam mogao objasniti zašto je oštećen, ali sam pretpostavio da se noćni proces razdvajanja srušio i proizveo oštećenu datoteku. Ručno sam ispravio CRC datoteke, zatvorio tiket i ubrzo zaboravio na problem.
Nakon višemjesečne analize, istraživač je konačno otkrio da su oštećene klijentske datoteke rezultat greške u Linux kernelu. Pronašao je način da iskoristi Dirty Pipe kako bi omogućio bilo kome s računom, uključujući i manje privilegovane "nobody" račune, da doda SSH ključ root korisničkom računu.
Da bi aktivirao ranjivost, Kellerman je podijelio svoj dokaz koncepta, napadač mora imati dozvole za čitanje. Dodatno, pomak ne smije biti na granici stranice, upisivanje ne može prijeći granicu stranice, a veličina datoteke se ne može promijeniti.
Da biste iskoristili ovu ranjivost, morate: kreirati cijev, popuniti cijev proizvoljnim podacima (da biste postavili oznaku PIPE_BUF_FLAG_CAN_MERGE na sve unose prstena), isprazniti cijev (ostaviti zastavicu postavljenu na svim instancama pipe_buffer strukture u strukturi prstena). pipe_inode_info ring), spojite podatke iz odredišne datoteke (otvorene sa O_RDONLY) u cijev neposredno prije pomaka odredišta i upišite proizvoljne podatke u cijev.
Dirty Pipe također utiče na bilo koju verziju Androida zasnovanu na jednoj od ranjivih verzija Linux kernela. Budući da je Android toliko fragmentiran, zahvaćeni modeli uređaja ne mogu se ravnomjerno pratiti.
Prema Kellermannovim riječima, Google je prošlog mjeseca integrirao svoju ispravku greške u Android kernel, odmah nakon što je ispravljena izdavanjem verzija Linux kernela 5.16.11, 5.15.25 i 5.10.102.
Imajući to u vidu, verovatno ćemo morati da sačekamo neko vreme pre nego što OEM proizvođači počnu da uvode Android ažuriranja koja sadrže ispravku. Googleov Pixel 6, na primjer, ostaje ranjiv, ali napredni korisnici mogu ublažiti nedostatak instaliranjem zakrpanog prilagođenog kernela kao rezervne opcije.
Programeri Linux kernela objavili su ispravke (5.16.11, 5.15.25, 5.10.102) 23. februara, dok je Google ažurirao Android kernel 24. februara. Kellermann i drugi stručnjaci uporedili su ranjivost sa CVE-2016-5195 "Dirty Cow" i rekli da ju je još lakše iskoristiti.
Konačno, ako ste zainteresirani da saznate više, detalje možete pronaći na sljedećem linku.