Нова уязвимост в KVM виртуализационния код на Linux ядрото за ARM64 процесори може да остави освободен фрагмент от паметта на хоста експониран за гостуваща виртуална машина при хостове с активирана вложена виртуализация.
Проблемът, проследяван като CVE-2026-89775, позволява на гостуваща виртуална машина да чете и записва в паметта на ядрото на хоста, а изследователят, който го е открил, заявява, че той може да бъде използван за ескалация извън изолираната среда на госта и изпълнение на код върху хост машината.
Засегнатият код е част от основното разклонение (mainline) на Linux ядрото за ARM64 и е отстранен в Linux 6.18.51, 7.2.5 и 7.3-rc1.
Вложената виртуализация позволява на госта да стартира собствен хипервизор, което му дава възможност да хоства виртуални машини. При ARM64 тя е изключена по подразбиране. Това е експериментален режим по време на зареждане (boot-time), който изисква Armv8.4 хардкуарен софтуер с функция, наречена FEAT_NV2, така че стандартен ARM64 KVM хост, който никога не я включва, е извън докладвания вектор на атака.
Уязвимостта се намира в частта от KVM, която управлява вложената виртуализация при ARM64. Когато гостът подреди своята памет по определен начин, изчислението на размера дава резултат нула и стъпката, която трябва да изчисти остарелите записи от адресното кеш пространство на процесора (TLB инвалидация), бива пропусната.
Страница от паметта на хоста, която е била освободена, остава свързана и достъпна за запис, като гостът може да я чете и записва по 64 бита наведнъж, без хардуерно прихващане, което да върне контрола на хоста.
Хюнву Ким (Hyunwoo Kim), изследователят по сигурност, който съобщи за уязвимостта и я разкри на 16 септември, заявява, че гостуваща машина може да използва това, за да излезе от своята виртуална среда и да изпълни код върху базисната машина. Не е публикуван код за експлойт и няма данни уязвимостта да е била използвана при атака.
Собственият регистър на ядрото посочва засегнатия код като присъстващ от Linux 6.16 насам. Авторът обаче е отбелязал корекцията спрямо по-късна промяна, а поддържащият разработчик (maintainer), който я е прегледал и тествал, заявява, че „пропуснатата инвалидация започва едва от v6.17“. Според това обяснение хост с версия 6.16 съдържа кода, но не и поведението, от което се нуждае даден атакуващ.
Съществува и втори начин за злоупотреба с уязвимостта. На системи, където всеки потребител може да отвори /dev/kvm (устройството, което дадено приложение използва за създаване на виртуална машина), локален потребител би могъл да създаде гост и да използва същия дефект, за да получи root привилегии, посочва Ким.
Той посочва Red Hat Enterprise Linux, където това устройство е отворено за всички потребители по подразбиране. Red Hat вписва ядрото на своята версия 10 като засегнато, а версии от 6 до 9 — като незасегнати. Този път за атака все пак изисква хостът да има активирана вложена виртуализация.
Кои ядра са коригирани
В основния проект уязвимостта е отстранена в Linux 6.18.51, 7.2.5 и 7.3-rc1. Дистрибуциите предоставят корекцията за сигурност според собствените си графици, като статусът варира според версията.
| Ядро или дистрибуция | Статус към 22 септември |
|---|---|
| Mainline Linux | Коригирана в 6.18.51, 7.2.5 и 7.3-rc1 |
| Red Hat Enterprise Linux | Ядрото на версия 10 е засегнато; версии от 6 до 9 не са засегнати |
| Ubuntu | 26.04, включително нейните AWS, Azure и GCP ядра, е уязвима; 24.04 LTS общото ядро не е засегнато, въпреки че по-новите му hardware-enablement ядра (6.17, 7.0) са уязвими |
| Amazon Linux | Пакетът kernel6.18 за AL2023: очаква корекция; други Amazon Linux ядра не са засегнати |
| Debian | bookworm и trixie не са засегнати (кодът не присъства); sid е коригиран в 7.2.6-1; forky е уязвим |
За хостове, за които все още не могат да бъдат инсталирани корекции за сигурност, Red Hat заявява, че няма временно решение (mitigation), което да отговаря на нейните критерии. Единственото сигурно нещо е обхватът: атаката е насочена само към хостове с активирана вложена виртуализация, което не е настройката по подразбиране при ARM64.
Доставчиците оценяват уязвимостта от 7.8 до 9.3 от 10. Те са съгласни, че въздействието е високо, а атаката е локална, което означава, че не може да бъде извършена по мрежата. Разликата отразява това колко трудна според всеки доставчик е уязвимостта за експлоатация, като Ubuntu, която показва оценка 9.3, определя собствения си приоритет като среден.
Към 22 септември уязвимостта не присъстваше в каталога с експлоатирани уязвимости на CISA в САЩ, а прогнозната оценка за нейната експлоатация беше под 1%.
Разкриването повдига въпроса дали клиентите на облачни услуги биха могли да използват уязвимостта, за да проникнат в машините на доставчик. При най-големите доставчици необходимата конфигурация не се предлага: Amazon Web Services посочва само базирани на Intel инстанции за вложена виртуализация, а Google Cloud изключва своите ARM виртуални машини от нея.
Това не е пълна гаранция за безопасност за тези платформи, но конкретният вектор на атака, който тази уязвимост използва, не е достъпен в техните стандартни ARM предложения.
CVE-2026-89775 е четвъртото излизане от KVM изолирана среда (guest-to-host escape), разкрита от Ким тази година. Две от тях бяха в x86 версията на KVM: Januscape през юли и Zapscape през август. Тази, на която прилича най-много, е ITScape — ARM64 KVM ескалация, публикувана от него през юни, която той нарече първото подобно публично демонстративно бягство при ARM64.