Nedavno su objavljene informacije o ranjivosti koja dovodi u opasnost cloud servere. Ova ranjivost omogućuje napadačima da preuzmu potpunu kontrolu nad fizičkim strojem , što je scenarij noćne more za pružatelje cloud infrastrukture.
Zapscape, registriran pod identifikatorom CVE-2026-64561, kritična je ranjivost u Linux KVM hipervizoru koja izlaže rizik koji mnoge platforme nenamjerno preuzimaju omogućavanjem ugniježđene virtualizacije. Ova ranjivost omogućuje napadaču s privilegijama kernela u virtualnom stroju (L1) izvršavanje koda s root privilegijama na host sustavu (L0), narušavajući izolaciju virtualiziranih okruženja.
Smatran prijetnjom visokog utjecaja, Zapscape ne samo da olakšava bijeg iz virtualnog stroja, već i otvara lokalnu rutu za eskalaciju privilegija za korisnike hosta koji imaju dozvole za pisanje na /dev/kvm uređaju.
Iako su organizacije poput Red Hata ocijenile ranjivost s CVSS ocjenom 7.0, fokusirajući se na nestabilnost i uskraćivanje usluge, javni dokaz koncepta (PoC) pokazuje mnogo destruktivniji opseg: stvaranje proizvoljne datoteke izravno u korijenu hosta.
Kaos u jedinici za upravljanje memorijom
Način na koji Zapscape radi skriven je unutar KVM-ove jedinice za upravljanje memorijom (MMU) i načina na koji hipervizor rukuje tablicama stranica kada jedan gost (L1) djeluje kao hipervizor za drugog podgosta (L2). Problem leži u logičkoj pogrešci redoslijeda tijekom rukovanja greškama stranica. U stazama kernel koda, provjera "zastarjelog korijena" izvršena je prije funkcije dohvaćanja stranice, umjesto nakon.
Ovaj netočan slijed pokreće klasični scenarij korištenja nakon oslobađanja . Tijekom oporavka, KVM može ukloniti korijen koji koristi i označiti ga kao nevažećeg. Međutim, budući da je provjera ispravnosti već pokrenuta, sustav nastavlja graditi mapiranja pod korijenom koji više nije valjan. Zanimljivo je da ovaj problem sortiranja postoji u kodu od 2008. godine, ali je postao kritičan i iskoristiv nakon izlaska Linux kernela 5.9 u srpnju 2020. , kada je uvedena direktiva koju je sustav jednostavno prestao provoditi.
Zahtjevi i ograničenja
Da bi Zapscape bio iskoristiv, okruženje mora ispunjavati vrlo specifične zahtjeve. Prvo, u KVM modulu mora biti omogućena ugniježđena virtualizacija, konfiguracija koja omogućuje troslojnu arhitekturu (L0, L1 i L2). Napadač treba pokrenuti napad s L1 sloja , što zahtijeva root privilegije na tom virtualnom stroju. Odatle napadač manipulira načinima memorije dok aktivnost L2 podgosta prisiljava L0 host da pokrene dohvaćanje kvota stranice, uzrokujući oštećenje memorije.
Na razini hardvera, uvjeti se razlikuju ovisno o proizvođaču. Na AMD sustavima koji koriste ugniježđene tablice stranica ( SVM ), ranjivost je jednostavnija i ne zahtijeva nikakve dodatne značajke. Suprotno tome, na Intel procesorima, scenarij zahtijeva da L1 gost ima izložene mogućnosti EPT pagewalk-a na četiri i pet razina . To ograničava vektor napada na Intel na novije arhitekture, posebno od obitelji Ice Lake-SP nadalje.
Vrijedi napomenuti da, iako je javni dokaz koncepta uspio prodrijeti do hosta u kontroliranim okruženjima, sigurnosni istraživači izvijestili su da na određenim rekompiliranim jezgrama exploit jednostavno ruši virtualni stroj napadača, djelujući kao uskraćivanje usluge, a ne kao potpuni bijeg.
Ublažavanje, zakrpe i strategije
Definitivno rješenje za Zapscape stiglo je u Linux repozitorije prošlog srpnja s zakrpom koja ispravlja redoslijed validacije. Ova ispravka premješta provjeru zastarjelog korijena da se izvrši nakon dodjele MMU stranice, osiguravajući da hipervizor ne stvara aktivna mapiranja pod izbrisanim korijenom. Ova ispravka već je implementirana u stabilnim granama kernela i široko se distribuira putem raznih distribucija.
Za administratore koji ne mogu odmah izvršiti nadogradnju, postoje vrlo učinkovite privremene mjere ublažavanja. Prioritetna radnja je onemogućavanje ugniježđene virtualizacije na svim poslužiteljima gdje to nije strogo potrebno prosljeđivanjem parametra `nested=0` modulima `kvm_amd` ili `kvm_intel` u konfiguracijskim datotekama modprobe. Ova mjera zahtijeva ponovno učitavanje modula, što znači zaustavljanje svih aktivnih virtualnih strojeva.
Konačno, ako ste zainteresirani saznati više, detalje možete pronaći na sljedećoj poveznici.