Недавно су објављене информације о рањивости која угрожава клауд сервере. Ова рањивост омогућава нападачима да преузму потпуну контролу над физичком машином , што је сценарио ноћне море за добављаче клауд инфраструктуре.
Zapscape, регистрован под идентификатором CVE-2026-64561, је критична рањивост у Linux KVM хипервизору која открива ризик који многе платформе ненамерно преузимају омогућавањем угнежђене виртуелизације. Ова рањивост омогућава нападачу са привилегијама језгра у виртуелној машини (L1) да изврши код са root привилегијама на хост систему (L0), прекидајући изолацију виртуелизованих окружења.
Сматра се претњом великог утицаја, Zapscape не само да олакшава бекство из виртуелне машине, већ и отвара локалну руту за ескалацију привилегија за кориснике хоста који имају дозволе за писање на /dev/kvm уређају.
Иако су организације попут Ред Хет-а оцениле рањивост са CVSS оценом 7.0, фокусирајући се на нестабилност и ускраћивање услуге, јавни доказ концепта (PoC) показује много деструктивнији обим: креирање произвољне датотеке директно у корену хоста.
Хаос у јединици за управљање меморијом
Начин на који Zapscape функционише је скривен унутар KVM-ове јединице за управљање меморијом (MMU) и начина на који хипервизор рукује табелама страница када један гост (L1) делује као хипервизор за другог подгоста (L2). Проблем лежи у логичкој грешци у редоследу током обраде грешке странице. У путањама кода језгра, провера „застарелог корена“ је извршена пре функције преузимања странице, уместо после.
Овај нетачан редослед покреће класичан сценарио „употреба након ослобађања“ . Током опоравка, KVM може уклонити корен који користи и означити га као неважећи. Међутим, пошто је провера исправности већ покренута, систем наставља да гради мапирања под кореном који више није важећи. Занимљиво је да овај проблем сортирања постоји у коду од 2008. године, али је постао критичан и злоупотребљив након објављивања Линукс језгра 5.9 у јулу 2020. године , када је уведена директива коју је систем једноставно престао да спроводи.
Захтеви и ограничења
Да би Zapscape био експлоативан, окружење мора да испуњава веома специфичне захтеве. Прво, угнежђена виртуелизација мора бити омогућена у KVM модулу, конфигурација која омогућава трослојну архитектуру (L0, L1 и L2). Нападач мора да покрене напад са L1 слоја , што захтева root привилегије на тој виртуелној машини. Одатле, нападач манипулише режимима меморије док активност L2 подгоста приморава L0 хост да покрене преузимање странице квоте, што узрокује оштећење меморије.
На нивоу хардвера, услови варирају у зависности од произвођача. На AMD системима који користе угнежђене табеле страница ( SVM ), рањивост је једноставнија и не захтева никакве додатне функције. Насупрот томе, на Intel процесорима, сценарио захтева да L1 гост има изложене могућности EPT pagewalk-а на четири и пет нивоа . Ово ограничава вектор напада на Intel на новије архитектуре, посебно од Ice Lake-SP породице па надаље.
Вреди напоменути да, иако је јавни доказ концепта успео да се прошири на хост у контролисаним окружењима, истраживачи безбедности су известили да на одређеним рекомпилираним језгрима експлоит једноставно руши виртуелну машину нападача, делујући као ускраћивање услуге, а не као потпуно бекство.
Ублажавање, закрпе и стратегије
Дефинитивно решење за Zapscape стигло је у Linux репозиторијуме прошлог јула са закрпом која исправља редослед валидације. Ова исправка помера проверу застарелог коренског директоријума да се изврши након алокације MMU странице, осигуравајући да хипервизор не креира активна мапирања под обрисаним коренским директоријумом. Ове исправке су већ имплементиране у стабилним гранама језгра и широко се дистрибуирају од стране различитих дистрибуција.
За администраторе који не могу одмах да надограде, постоје веома ефикасне привремене мере за ублажавање проблема. Приоритетна акција је онемогућавање угнежђене виртуелизације на свим серверима где то није строго неопходно проследом параметра `nested=0` модулима `kvm_amd` или `kvm_intel` у конфигурационим датотекама modprobe. Ова мера захтева поновно учитавање модула, што значи заустављање свих активних виртуелних машина.
На крају, ако сте заинтересовани да сазнате више, детаље можете пронаћи на следећем линку.