SÄrbarhet i AMD-specifik CPU-kod i KVM som tillÄter att köra kod utanför gÀstsystmet

Forskare frÄn Google Project Zero har upptÀckt en sÄrbarhet (CVE-2021-29657) i KVM-hypervisorn som levereras med Linux-kÀrnan, vilket gör det möjligt att kringgÄ isoleringen av gÀstsystemet och köra egen kod i vÀrdmiljön. Problemet finns i koden som anvÀnds pÄ system med AMD-processorer (modulen kvm-amd.ko) och visar sig inte för Intel-processorer.

Forskare har tagit fram en fungerande prototyp av ett exploit, som tillÄter att man frÄn gÀstmiljön kan starta en root-shell i vÀrdmiljön pÄ ett system med AMD Epyc 7351P-processor och Linux-kÀrnan 5.10. Det noteras att detta Àr det första exemplet pÄ en "guest-to-host"-brist i hypervisorn. KVM, inte relaterad till fel i komponenter som körs i anvÀndarutrymmet, sÄsom QEMU. En lösning har godkÀnts för kÀrnan i slutet av mars. Problemet uppstÄr med Linux-kÀrna 5.10-rc1 och strÀcker sig fram till v5.12-rc6, dvs. det omfattar endast kÀrnorna 5.10 och 5.11 (de flesta stabila distributioner pÄverkas inte av problemet).

Problemet finns i mekanismen nested_svm_vmrun, implementerad med AMD SVM (Secure Virtual Machine)-tillÀgget, som möjliggör att köra inbÀddade gÀstsystem. För att korrekt implementera denna funktionalitet mÄste hypervisorn fÄnga alla SVM-instruktioner som körs i gÀstsystemen, emulera deras beteende och synkronisera tillstÄndet med hÄrdvaran, vilket Àr en ganska komplex uppgift. Efter att ha analyserat den föreslagna implementationen i KVM fann forskarna en logisk felaktighet, vilket gör det möjligt att pÄverka innehÄllet i MSR-register (Model-Specific Register) i vÀrden frÄn gÀstsystemet, vilket kan utnyttjas för att köra kod pÄ vÀrdnivÄ.

Specifikt leder exekveringen av VMRUN-operationen frÄn det andra nivÄn gÀstsystemet (L2, som körs frÄn ett annat gÀstsystem) till en andra anrop av nested_svm_vmrun och korruption av strukturen svm->nested.hsave, dÀr data frÄn vmcb i gÀstsystemet L2 lÀggs ovanpÄ. Som ett resultat kan man i gÀstsystemet L2 frigöra minnet i strukturen svm->nested.msrpm, dÀr MSR-biten lagras, trots att den fortfarande anvÀnds, och fÄ tillgÄng till MSR i vÀrdmiljön.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster