AMD պրոցեսորի հատուկ KVM կոդում խոցելիություն, որը թույլ է տալիս կոդը կատարել հյուրի համակարգից դուրս

Google Project Zero թիմի հետազոտողները մատակարարված միջուկում հայտնաբերել են խոցելիություն (CVE-2021-29657): Linux гипервизоре KVM, позволяющую обойти изоляцию гостевой системы и выполнить свой код на стороне хост-окружения. Проблема присутствует в коде, используемом на системах с процессорами AMD (модуль kvm-amd.ko) и не проявляется для процессоров Intel.

Исследователями подготовлен рабочий прототип эксплоита, позволяющий из гостевого окружения запустить root shell в хост-окружении на системе с процессором AMD Epyc 7351P и ядром Linux 5.10. Отмечается, что это первая брешь класса «guest-to-host» в самом гипервизоре KVM, не связанная с ошибками в компонентах, выполняемых в пространстве пользователя, таких как QEMU. Исправление было принято в ядро в конце марта. Проблема проявляется начиная с ядра Linux 5.10-rc1 и заканчивая v5.12-rc6, т.е. охватывает только ядра 5.10 и 5.11 (большинство стабильных веток дистрибутивов проблема не коснулась).

Խնդիրն առկա է nested_svm_vmrun մեխանիզմում, որն իրականացվել է AMD SVM (Անվտանգ վիրտուալ մեքենա) ընդլայնման միջոցով և թույլ է տալիս հյուր համակարգերի ներդրված գործարկումը: Այս ֆունկցիոնալությունը ճիշտ իրականացնելու համար հիպերվիզորը պետք է ընդհատի հյուրերի համակարգերում կատարված բոլոր SVM հրահանգները, ընդօրինակի նրանց վարքագիծը և սինխրոնիզացնի վիճակը սարքաշարի հետ, ինչը բավականին բարդ խնդիր է: KVM-ում առաջարկված իրականացումը վերլուծելուց հետո հետազոտողները գտան տրամաբանական սխալ, որը թույլ է տալիս ազդել հյուրի համակարգից հյուրընկալողի MSR ռեգիստրների (Model-Specific Register) բովանդակության վրա, որը կարող է օգտագործվել կոդ գործարկելու համար հյուրընկալող մակարդակում: .

Մասնավորապես, երկրորդ մակարդակի հյուրից VMRUN գործողություն կատարելը (L2-ն աշխատում է այլ հյուրից) հանգեցնում է nested_svm_vmrun-ին երկրորդ զանգի և svm->nested.hsave կառուցվածքի փչացմանը, որը ծածկված է L2 հյուրի vmcb-ի տվյալների հետ: Արդյունքում, առաջանում է մի իրավիճակ, երբ L2 հյուրի մակարդակում հնարավոր է ազատել հիշողությունը svm->nested.msrpm կառուցվածքում, որը պահում է MSR բիթը, չնայած այն հանգամանքին, որ այն շարունակում է օգտագործվել և շահել: մուտք դեպի հյուրընկալող միջավայր MSR:

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster