Navorsers van die Google Project Zero-span het 'n kwesbaarheid (CVE-2021-29657) in die kern geïdentifiseer wat verskaf is. Linux Die KVM-hipervisor maak dit moontlik om gasstelsel-isolasie te omseil en kode aan die gasheerkant uit te voer. Die probleem is teenwoordig in kode wat op stelsels met AMD-verwerkers (die kvm-amd.ko-module) gebruik word en beïnvloed nie Intel-verwerkers nie.
Navorsers het 'n werkende prototipe van 'n kwotasie voorberei wat dit moontlik maak om 'n worteldop vanaf die gasomgewing in die gasheeromgewing op 'n stelsel met 'n AMD Epyc 7351P-verwerker en -kern te loods. Linux 5.10. Daar word opgemerk dat dit die eerste gas-na-gasheer-kwesbaarheid in die hipervisor self is. KVM, nie verwant aan foute in gebruikersruimte-komponente soos QEMU nie. 'n Regstelling is einde Maart in die kern aanvaar. Die probleem manifesteer homself vanaf die kern. Linux 5.10-rc1 en eindig met v5.12-rc6, d.w.s. dit dek slegs kern 5.10 en 5.11 (meeste stabiele takke van verspreidings word nie deur die probleem beïnvloed nie).
Die probleem is teenwoordig in die nested_svm_vmrun-meganisme, geïmplementeer met behulp van die AMD SVM (Secure Virtual Machine) uitbreiding en wat geneste bekendstelling van gasstelsels moontlik maak. Om hierdie funksionaliteit korrek te implementeer, moet die hiperviseerder alle SVM-instruksies wat in gasstelsels uitgevoer word, onderskep, hul gedrag naboots en toestand met die hardeware sinchroniseer, wat 'n taamlik komplekse taak is. Na die ontleding van die implementering wat in KVM voorgestel is, het die navorsers 'n logiese fout gevind wat 'n mens in staat stel om die inhoud van die MSR-registers (Model-Spesifieke Register) van die gasheer vanaf die gasstelsel te beïnvloed, wat gebruik kan word om kode op die gasheervlak te laat loop. .
In die besonder, die uitvoering van 'n VMRUN-bewerking vanaf 'n tweedevlakgas (L2 wat van 'n ander gas af loop) lei tot 'n tweede oproep na nested_svm_vmrun en korrupsie van die svm->nested.hsave-struktuur, wat met data van die L2-gas se vmcb oorgetrek word. As gevolg hiervan ontstaan 'n situasie waar dit op die L2-gasvlak moontlik is om die geheue in die svm->nested.msrpm-struktuur te bevry, wat die MSR-bis stoor, ten spyte van die feit dat dit steeds gebruik word, en kry toegang tot die gasheeromgewing MSR.
Bron: opennet.ru
