Dirty Pipe: ranjivost koja omogućuje prepisivanje podataka

Nedavno je vijest objavila to identificirana je ranjivost u jezgri Linuxa i koji je već katalogiziran pod CVE-2022-0847 i koji su nazvali kao "prljava cijev".

Ova ranjivost nazvana je "Prljava cijev"omogućuje prepisivanje sadržaja predmemorije stranice za bilo koju datoteku, uključujući one postavljene na samo za čitanje, otvorene s oznakom O_RDONLY ili smještene na datotečnim sustavima montiranim samo za čitanje.

S praktične strane, ranjivost može se koristiti za ubacivanje koda u proizvoljne procese ili oštećene podatke u otvorenim datotekama. Na primjer, možete promijeniti sadržaj datoteke authorized_keys za sshd proces.

O Dirty Pipeu

Slično je kritičnoj ranjivosti Dirty COW identificiran 2016. i Dirty Pipe se spominje da je na istoj razini kao Dirty COW u smislu opasnosti, ali da je ovaj puno lakši za rad.

Prljava cijev identificirana je tijekom analize pritužbi na povremeno oštećenje arhivske građe preuzeto preko mreže na sustavu koji preuzima komprimirane datoteke s poslužitelja za zapise (37 oštećenja u 3 mjeseca na učitanom sustavu), koje su pripremljene pomoću operacije splice() i neimenovanih cijevi.

Ranjivost manifestira se od verzije Linux kernela 5.8, objavljen u kolovozu 2020.

Gledano na drugi način možemo reći da je prisutan u Debianu 11 ali ne utječe na osnovnu jezgru u Ubuntu 20.04 LTS, dok za RHEL 8.x i openSUSE/SUSE 15 kernela koji su izvorno bazirani na starim granama, ali je moguće da je promjena koja uzrokuje problem prenesena na njih (još nema točnih podataka).

Ranjivost je uzrokovana nedostatkom inicijalizacije vrijednosti "buf->flags" u kodu funkcija copy_page_to_iter_pipe() i push_pipe(), unatoč tome što se memorija ne briše kada se struktura dodjeljuje, te uz određene manipulacije s neimenovanim cijevi, "buf->flags" može sadržavati vrijednost iz druge operacije. S ovom značajkom, neprivilegirani lokalni korisnik može postići izgled vrijednosti PIPE_BUF_FLAG_CAN_MERGE u zastavici, dopuštajući im da prebrišu podatke u predmemoriji stranice jednostavnim pisanjem novih podataka u posebno pripremljenu neimenovanu cijevi.

za napad može se učiniti, potrebna vam je ciljna datoteka koja mora biti čitljiva a budući da se prava pristupa ne provjeravaju prilikom pisanja u cijev, zamjena se može izvesti u predmemoriji stranica, čak i za datoteke koje se nalaze na particijama samo za čitanje (na primjer, za c CD-ROM datoteke).

Time, nakon zamjene informacija u predmemoriji stranice, proces prilikom čitanja podataka iz datoteke neće primiti prave podatke, već zamijenjene.

Spominje se da operacija Dirty Pipe svodi se na stvaranje neimenovane cijevi i njeno punjenje proizvoljnim podacima kako bi se postiglo postavljanje zastavice PIPE_BUF_FLAG_CAN_MERGE na svim prstenastim strukturama koje su s njim povezane.

Podaci se tada čitaju iz cijevi, ali zastavica ostaje postavljena na svim instancama strukture pipe_buffer u prstenastim strukturama pipe_inode_info. Zatim se poziva splice() za čitanje podataka iz odredišne ​​datoteke u neimenovanu cijev, počevši od potrebnog pomaka. Prilikom pisanja podataka u ovu neimenovanu cijev, oznaka PIPE_BUF_FLAG_CAN_MERGE prebrisat će podatke u predmemoriji stranice umjesto stvaranja nove instance strukture pipe_buffer.

Konačno Ako vas zanima više o tome, detalje možete provjeriti u izvornoj bilješci U sljedećem linku.

Također, ako ste zainteresirani za moći pratiti ili znati o objavljivanju ažuriranja paketa u glavnim distribucijama, to možete učiniti sa ovih stranica: DebianSUSEUbuntuRHELFedoraGentooArchLinux.

Spominje se da je predloženi popravak ranjivosti dostupan u verzijama Linux kernela 5.16.11, 5.15.25 i 5.10.102, a popravak je također uključen u kernel koji se koristi na platformi Android.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.