Уязвимостта в KVM позволява изпълнение на код извън системата за гости на AMD процесори

Изследователи от екипа на Google Project Zero разкриха преди няколко дни в публикация в блог, която са идентифицирали уязвимост (CVE-2021-29657) в KVM хипервизора (базиран на Linux хипервизор с отворен код, който поддържа хардуерно ускорена виртуализация на x86, ARM, PowerPC и S / 390) ви позволява да избегнете изолирането на системата за гости и стартирайте кода си от страната на хост средата.

В публикацията се споменава, че проблемът манифести от ядрото на Linux 5.10-rc1 до v5.12-rc6, тоест, обхваща само ядра 5.10 и 5.11 (Повечето от стабилните клонове на дистрибуции не са засегнати от проблема.) Проблемът е наличен в механизма nested_svm_vmrun, реализиран с помощта на разширението AMD SVM (Secure Virtual Machine) и позволяващ вложено стартиране на системи за гости.

В тази публикация в блога описвам уязвимост в специфичния за AMD код на KVM и обсъждам как тази грешка може да се превърне в пълно бягство от виртуална машина. Доколкото знам, това е първият публичен запис на пробив на KVM гост-хост, който не разчита на грешки в компонентите на потребителското пространство като QEMU.

Обсъжданата грешка е назначена CVE-2021-29657, засяга версии на ядрото v5.10-rc1 до v5.12-rc6 и е закърпена в края на март 2021 г. Тъй като грешката стана възможна за експлоатация само в v5.10 и беше открита около 5 месеца по-късно, повечето реални KVM разполагания не трябва да бъдат засегнати. Все още мисля, че проблемът е интересен казус в работата, необходима за изграждане на стабилно бягство от гост към хост срещу KVM и се надявам тази статия да докаже, че компромисите на хипервизора не са само теоретични проблеми.

Изследователите споменават, че за правилното прилагане на тази функционалност, хипервизорът трябва да прихване всички SVM инструкции работи на системи за гости, емулират поведението му и синхронизират състоянието с хардуера, което е доста трудна задача.

След анализ на предложеното изпълнение на KVM, изследователитеs срещна логическа грешка, която позволява съдържанието на MSR (Специфична за модела регистрация) на хоста да бъде повлиян от системата за гости, който може да се използва за изпълнение на код на ниво хост.

По-специално, стартирането на операция VMRUN от гост от второ вложено ниво (L2, стартиран от друг гост) води до второ извикване на nested_svm_vmrun и поврежда структурата svm-> nested.hsave, която е покрита с данни от vmcb от системата за гости L2 .

В резултат на това възниква ситуация, при която на ниво гост L2 е възможно да се освободи памет в структурата svm-> nested.msrpm, която съхранява бита MSR, въпреки че продължава да се използва, и достъп до MSR на хоста околната среда.

Това означава, например, че паметта на госта може да бъде проверена чрез изхвърляне на разпределената памет на процеса на потребителското му пространство или че ограниченията на ресурсите за процесорно време и паметта могат лесно да бъдат приложени. 

В допълнение, KVM може да разтовари по-голямата част от работата, свързана с емулация на устройство, към компонента на потребителското пространство.

Проблемът присъства в кода, използван в системи с процесори AMD (kvm-amd.ko модул) и не се появява на процесорите на Intel.

 Извън няколко чувствителни към производителност устройства, занимаващи се с обработка на прекъсвания, целият сложен код от ниско ниво за предоставяне на достъп до виртуален диск, мрежа или GPU може да бъде разположен в потребителското пространство.  

Изследователите в допълнение към описанието на проблема те също са подготвили работещ прототип на експлойт което позволява стартиране на коренна черупка от гост среда в хост среда на система с процесор AMD Epyc 7351P и ядро ​​на Linux 5.10.

Забелязва се, че това е първият гост, който хоства уязвимост в KVM хипервизора себе си, не е свързано с грешки в компонентите на потребителското пространство като QEMU. Поправката беше приета в ядрото в края на март.

Накрая ако се интересувате да научите повече за това относно бележката, можете да проверите подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.