Vulnerabilitet në kodin specifik për CPU AMD të KVM, e cila lejon ekzekutimin e kodit jashtë sistemit mysafir.

Hulumtuesit nga ekipi i Google Project Zero zbuluan një dobësi (CVE-2021-29657) në hipervizorin KVM të përfshirë në bërthamën Linux, e cila lejon anashkalimin e izolimit të sistemit mysafir dhe ekzekutimin e kodit të tyre në mjedisin e hostit. Problemi ndodhet në kodin e përdorur në sisteme me procesorë AMD (moduli kvm-amd.ko) dhe nuk shfaqet për procesorët Intel.

Hulumtuesit kanë përgatitur një prototip funksional të eksploitit, i cili lejon nga mjedisi mysafir të nisë një shell root në mjedisin e hostit në një sistem me procesorin AMD Epyc 7351P dhe bërthamën Linux 5.10. Vlen të theksohet se kjo është vrima e parë e klasës "guest-to-host" në vetë hipervizorin, KVM, e cila nuk është e lidhur me gabimet në komponentët që ekzekutohen në hapësirën e përdoruesit, të tilla si QEMU. Rregullimi i kësaj çështjeje u pranuar në bërthamë në fund të marsit. Problemi shfaqet që nga bërthama Linux 5.10-rc1 deri në v5.12-rc6, dmth. mbulon vetëm bërthamat 5.10 dhe 5.11 (shumica e degëve të stabilizuara të shpërndarjeve nuk janë prekur nga problemi).

Problemi ndodhet në mekanizmin nested_svm_vmrun, i implementuar duke përdorur zgjatjen AMD SVM (Secure Virtual Machine) dhe që lejon organizimin e ekzekutimeve të shtresuara të sistemeve mysafire. Për të realizuar saktësisht këtë funksionalitet, hipervizori duhet të kapë të gjitha instrukcionet SVM që ekzekutohen në sistemet mysafire, të simulojë sjelljen e tyre dhe të sinkronizojë gjendjen me pajisjet, e cila është një detyrë mjaft komplekse. Duke analizuar implementimin e propozuar në KVM, hulumtuesit gjetën një gabim logjik që lejon të ndikojnë në përmbajtjen e regjistrave MSR (Model-Specific Register) të hostit nga sistemi mysafir, gjë që mund të përdoret për të ekzekutuar kod në nivelin e hostit.

Në veçanti, ekzekutimi i operacionit VMRUN nga sistemi mysafir i nivelit të dytë të shtresuar (L2, i nisur nga një sistem mysafir tjetër) çon në thirrjen e dytë të nested_svm_vmrun dhe shpërvleftësimin e strukturës svm->nested.hsave, mbi të cilën ngarkohen të dhënat nga vmcb i sistemit mysafir L2. Si rezultat, krijohet situata, ku në nivelin e sistemit mysafir L2 është e mundur të lirohet memorja në strukturën svm->nested.msrpm, e cila përmban bitin MSR, megjithëse ai vazhdon të përdoret, dhe të aksesohen regjistrat MSR të mjedisit të hostit.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster