Një dobësi në KVM lejon ekzekutimin e kodit jashtë sistemit të vizitorëve në procesorët AMD

Studiuesit nga ekipi i Google Project Zero zbuluan disa ditë më parë në një postim në blog që kanë identifikuar një cenueshmëri (CVE-2021-29657) në hipervizorin e KVM (një hypervisor me burim të hapur të bazuar në Linux që mbështet virtualizimin e përshpejtuar me harduer në x86, ARM, PowerPC dhe S / 390) që ju lejon të shmangni izolimin e sistemit të mysafirëve dhe ekzekutoni kodin tuaj në anën e mjedisit pritës.

Postimi përmend se problemi manifestohet nga kerneli Linux 5.10-rc1 në v5.12-rc6, dmth mbulon vetëm bërthamat 5.10 dhe 5.11 (Shumica e degëve të qëndrueshme të shpërndarjeve nuk u prekën nga problemi.) Problemi është i pranishëm në mekanizmin nested_svm_vmrun, i zbatuar duke përdorur shtesën AMD SVM (Makinë të Vërtetë të Sigurt) dhe lejon nisjen e sistemuar të sistemeve të ftuar.

Në këtë postim në blog, unë përshkruaj një dobësi në kodin specifik AMD KVM dhe diskutoj se si ky defekt mund të shndërrohet në një ikje të plotë të makinës virtuale. Me sa di unë, kjo është shkrimi i parë publik i një ndërprerjeje nga mysafiri në host i KVM që nuk mbështetet në defekte në përbërësit e hapësirës së përdoruesit si QEMU.

Gabimi i diskutuar u caktua CVE-2021-29657, prek versionet e kernelit v5.10-rc1 në v5.12-rc6 dhe u rregullua në fund të Marsit 2021. Ndërsa defekt u bë i shfrytëzueshëm vetëm në v5.10 dhe u zbulua rreth 5 muaj më vonë, shumica e vendosjeve të KVM në botën reale nuk duhet të preken. Unë ende mendoj se problemi është një studim interesant i çështjeve në punën e kërkuar për të ndërtuar një arratisje të qëndrueshme nga një mysafir në një mikpritës kundër KVM dhe shpresoj se ky artikull mund të bëjë që kompromiset e hypervisor nuk janë vetëm probleme teorike.

Studiuesit përmendin se për zbatimin korrekt të këtij funksionaliteti, hipervizori duhet të përgjojë të gjitha udhëzimet e SVM drejtuar në sistemet e mysafirëve, imitoni sjelljen e saj dhe sinkronizoni gjendjen me harduerin, e cila është një detyrë mjaft e vështirë.

Pasi analizuan zbatimin e propozuar të KVM, studiuesitS hasi një gabim logjik që lejon përmbajtjen e MSR (Regjistrimi specifik për modelin) i nikoqirit të ndikohet nga sistemi i mysafirëve, i cili mund të përdoret për të ekzekutuar kodin në nivelin e hostit.

Në veçanti, drejtimi i një operacioni VMRUN nga një mysafir i dytë i nivelit të vendosur (L2 i nisur nga një mysafir tjetër) çon në një thirrje të dytë te nested_svm_vmrun dhe prish strukturën svm-> nested.hsave, e cila mbivendoset me të dhëna nga vmcb nga sistemi i vizitorëve L2 .

Si rezultat, lind një situatë ku në nivelin e vizitorëve L2 është e mundur të lirohet memoria në strukturën svm-> nested.msrpm, e cila ruan bitin MSR, edhe pse vazhdon të përdoret, dhe të hyhet në MSR të hostit mjedisi.

Kjo do të thotë, për shembull, që kujtesa e një vizitori mund të inspektohet duke hedhur memorjen e caktuar të procesit të hapësirës së përdoruesit ose që kufijtë e burimeve për kohën dhe memorjen e CPU mund të zbatohen lehtësisht. 

Përveç kësaj, KVM mund të shkarkojë pjesën më të madhe të punës në lidhje me imitimin e pajisjes në përbërësin e hapësirës së përdoruesit.

Problemi është i pranishëm në kodin e përdorur në sistemet me procesorë AMD (moduli kvm-amd.ko) dhe nuk shfaqet në procesorët Intel.

 Jashtë disa pajisjeve të ndjeshme ndaj performancës që merren me trajtimin e ndërprerjeve, i gjithë kodi kompleks i nivelit të ulët për sigurimin e aksesit në disk virtual, rrjet ose GPU mund të vendoset në hapësirën e përdoruesit.  

Studiuesit përveç përshkrimit të problemit ata gjithashtu kanë përgatitur një prototip punues të një shfrytëzimi i cili lejon drejtimin e një shell rrënje nga një mjedis i ftuar në një mjedis pritës në një sistem me një procesor AMD Epyc 7351P dhe një kernel Linux 5.10.

Observedshtë vërejtur se ky është mysafiri i parë që pret dobësi në hipervizorin e KVM në vetvete, nuk lidhen me mete në përbërësit e hapësirës së përdoruesit si QEMU. Rregullimi u pranua në bërthamë në fund të Marsit.

Më në fund nëse jeni të interesuar të dini më shumë për të në lidhje me shënimin, mund të kontrolloni detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.