Ranjivost u KVM-u omogućava izvršavanje koda izvan gostujućeg sistema na AMD procesorima

Istraživači iz Google Project Zero tima otkrili su to prije nekoliko dana u postu na blogu su identificirali ranjivost (CVE-2021-29657) u KVM hipervizoru (hipervizor zasnovan na Linuxu koji podržava hardverski ubrzanu virtualizaciju na x86, ARM, PowerPC i S / 390) omogućava vam da izbjegnete izolaciju gostujućeg sistema i pokrenite svoj kod na strani okruženja domaćina.

Post spominje taj problem manifestira iz Linux kernela 5.10-rc1 do v5.12-rc6, to jest, pokriva samo jezgre 5.10 i 5.11 (Problem nije utjecao na većinu stabilnih grana distribucije.) Problem je prisutan u nested_svm_vmrun mehanizmu, implementiranom pomoću proširenja AMD SVM (Sigurna virtualna mašina) i omogućavajući ugniježđeno pokretanje sistema gostiju.

U ovom postu na blogu opisujem ranjivost u AMD specifičnom KVM kodu i raspravljam o tome kako se ova greška može pretvoriti u potpuno bijeg virtualne mašine. Koliko znam, ovo je prvo javno objavljivanje provale KVM gost-domaćin koja se ne oslanja na greške u komponentama korisničkog prostora kao što je QEMU.

Raspravljena greška dodijeljena je CVE-2021-29657, utječe na verzije jezgra v5.10-rc1 do v5.12-rc6 i zakrpana je krajem marta 2021. godine. Budući da je greška postala eksploatabilna tek u v5.10 i otkrivena otprilike 5 mjeseci kasnije, većina stvarnih KVM implementacija ne bi trebala biti pogođena. I dalje mislim da je problem zanimljiva studija slučaja u radu potrebnom za izgradnju stabilnog bijega gosta prema domaćinu protiv KVM-a i nadam se da ovaj članak može dokazati da kompromiti hipervizora nisu samo teorijski problemi.

Istraživači napominju da za ispravnu implementaciju ove funkcionalnosti, hipervizor mora presresti sve SVM upute pokrenuti na gostujućim sistemima, oponašati njegovo ponašanje i sinhronizirati stanje s hardverom, što je prilično težak zadatak.

Nakon analize predložene implementacije KVM-a, istraživačis naišli su na logičku grešku koja dozvoljava sadržaj MSR-a (Registracija specifična za model) domaćina biti pod utjecajem sistema gostiju, koji se može koristiti za izvršavanje koda na razini hosta.

Konkretno, izvođenje VMRUN operacije od gosta druge ugniježđene razine (L2 pokrenut od drugog gosta) dovodi do drugog poziva nested_svm_vmrun i kvari strukturu svm-> nested.hsave, koja je prekrivena podacima iz vmcb iz gostujućeg sistema L2 .

Kao rezultat, dolazi do situacije da je na razini gosta L2 moguće osloboditi memoriju u strukturi svm-> nested.msrpm, koja pohranjuje MSR bit, iako se i dalje koristi, i pristupa MSR-u hosta okoliš.

To znači, na primjer, da se memorija gosta može pregledati izbacivanjem dodijeljene memorije procesa korisničkog prostora ili da se ograničenja resursa za CPU vrijeme i memoriju mogu lako nametnuti. 

Pored toga, KVM može rasteretiti većinu posla koji se odnosi na emulaciju uređaja na komponentu korisničkog prostora.

Problem je prisutan u kodu koji se koristi na sistemima s AMD procesorima (kvm-amd.ko modul) i ne pojavljuje se na Intelovim procesorima.

 Izvan nekoliko uređaja osjetljivih na performanse koji se bave rukovanjem prekidima, sav složeni kod niskog nivoa za pružanje pristupa virtualnom disku, mreži ili GPU-u može se postaviti u korisnički prostor.  

Istraživači pored opisa problema Oni su takođe pripremili radni prototip eksploatacije koji omogućava pokretanje korijenske ljuske iz gostinjskog okruženja u domaćinskom okruženju na sistemu s procesorom AMD Epyc 7351P i jezgrom Linux 5.10.

Primjećuje se da ovo je prvi gost koji je domaćin ranjivosti u KVM hipervizoru sam po sebi, nije povezan sa greškama u komponentama korisničkog prostora poput QEMU. Ispravka je prihvaćena u jezgri krajem marta.

Konačno ako ste zainteresirani da saznate više o tome o bilješci možete provjeriti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.