Nedavno su objavljene informacije o ranjivosti koja dovodi cloud servere u opasnost. Ova ranjivost omogućava napadačima da preuzmu potpunu kontrolu nad fizičkim računarom , što je noćna mora za provajdere cloud infrastrukture.
Zapscape, registrovan pod identifikatorom CVE-2026-64561, je kritična ranjivost u Linux KVM hipervizoru koja izlaže rizik koji mnoge platforme nenamjerno preuzimaju omogućavanjem ugniježđene virtualizacije. Ova ranjivost omogućava napadaču s privilegijama kernela u virtuelnoj mašini (L1) da izvrši kod s root privilegijama na host sistemu (L0), narušavajući izolaciju virtuelizovanih okruženja.
Smatran prijetnjom visokog utjecaja, Zapscape ne samo da olakšava bijeg iz virtualne mašine, 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 sa CVSS ocjenom 7.0, fokusirajući se na nestabilnost i uskraćivanje usluge, javni dokaz koncepta (PoC) pokazuje mnogo destruktivniji opseg: kreiranje proizvoljne datoteke direktno u korijenu hosta.
Haos u jedinici za upravljanje memorijom
Način na koji Zapscape funkcioniše skriven je unutar KVM-ove jedinice za upravljanje memorijom (MMU) i načina na koji hipervizor rukuje tabelama stranica kada jedan gost (L1) djeluje kao hipervizor za drugog podgosta (L2). Problem leži u logičkoj grešci u redoslijedu tokom rukovanja greškama stranica. U putanjama koda kernela, provjera "zastarjelog korijena" izvršena je prije funkcije preuzimanja stranice, umjesto poslije.
Ovaj netačan niz pokreće klasičan scenario "korištenje nakon oslobađanja" . Tokom oporavka, KVM može ukloniti root koji koristi i označiti ga kao nevažećeg. Međutim, budući da je provjera ispravnosti već izvršena, sistem nastavlja graditi mapiranja pod rootom koji više nije važeći. Zanimljivo je da ovaj problem sortiranja postoji u kodu od 2008. godine, ali je postao kritičan i iskoristiv nakon izdavanja Linux kernela 5.9 u julu 2020. godine , kada je uvedena direktiva koju je sistem jednostavno prestao provoditi.
Zahtjevi i ograničenja
Da bi Zapscape bio iskoristiv, okruženje mora ispunjavati vrlo specifične zahtjeve. Prvo, ugniježđena virtualizacija mora biti omogućena u KVM modulu, konfiguracija koja omogućava troslojnu arhitekturu (L0, L1 i L2). Napadač treba pokrenuti napad sa L1 sloja , što zahtijeva root privilegije na toj virtuelnoj mašini. Odatle napadač manipuliše memorijskim režimima dok aktivnost L2 podgosta prisiljava L0 host da pokrene preuzimanje kvota stranice, što uzrokuje oštećenje memorije.
Na nivou hardvera, uslovi variraju u zavisnosti od proizvođača. Na AMD sistemima koji koriste ugniježđene tabele stranica ( SVM ), ranjivost je jednostavnija i ne zahtijeva nikakve dodatne funkcije. Suprotno tome, na Intel procesorima, scenario zahtijeva da L1 gost ima izložene mogućnosti EPT pagewalk-a na četiri i pet nivoa . Ovo ograničava vektor napada na Intel na novije arhitekture, posebno od porodice Ice Lake-SP nadalje.
Vrijedi napomenuti da, iako je javni dokaz koncepta uspio da se proširi na host u kontroliranim okruženjima, sigurnosni istraživači su izvijestili da na određenim rekompiliranim kernelima exploit jednostavno ruši virtuelnu mašinu 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 jula s zakrpom koja ispravlja redoslijed validacije. Ova ispravka premješta provjeru zastarjelog korijenskog direktorija da se izvrši nakon alokacije MMU stranice, osiguravajući da hipervizor ne kreira aktivna mapiranja pod izbrisanim korijenskim direktorijem. Ove ispravke su već implementirane u stabilnim granama kernela i široko se distribuiraju putem raznih distribucija.
Za administratore koji ne mogu odmah izvršiti nadogradnju, postoje vrlo efikasne privremene mjere ublažavanja. Prioritetna akcija je onemogućavanje ugniježđene virtualizacije na svim serverima gdje to nije strogo neophodno, 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 virtuelnih mašina.
Konačno, ako ste zainteresirani da saznate više, detalje možete pronaći na sljedećem linku.