Zapscape, KVM-i haavatavus, mis võimaldab virtuaalmasinast põgeneda ja hosti üle kontrolli haarata.

Võtmepunktid:
  • KVM-i kriitiline viga, mis võimaldab ründajal virtuaalmasinast (L1) põgeneda ja hostserveri (L0) üle täieliku kontrolli võtta.
  • Põhjustatud varju-MMU halduse "vaba mälu kasutamise" veast, mis on esinenud alates Linuxi kerneli versioonist 5.9.
  • Selle kasutamiseks on absoluutselt vaja, et serveris oleks lubatud pesastatud virtualiseerimisfunktsioon.
  • See mõjutab AMD ja Inteli protsessoreid (viimased vajavad avatud 4. ja 5. taseme EPT lehekülje läbimise võimalusi).
  • Viimastes kerneli värskendustes parandatud, soovitatav on pesastatud virtualiseerimine ajutise leevendusena välja lülitada.

Zapscape

Hiljuti avaldati teavet haavatavuse kohta , mis seab ohtu pilveserverid. See haavatavus võimaldab ründajatel füüsilise masina üle täieliku kontrolli võtta , mis on pilveinfrastruktuuri pakkujatele õudusunenägu.

Zapscape, mis on registreeritud identifikaatori CVE-2026-64561 all, on Linux KVM hüperviisori kriitiline haavatavus, mis paljastab riski, mida paljud platvormid kogemata võtavad, lubades pesastatud virtualiseerimist. See haavatavus võimaldab ründajal, kellel on virtuaalmasinas (L1) kerneli õigused, käivitada koodi hostsüsteemis (L0) juurõigustega, lõhkudes virtualiseeritud keskkondade isolatsiooni.

Suure mõjuga ohuks peetav Zapscape mitte ainult ei hõlbusta virtuaalmasinast põgenemist, vaid avab ka kohaliku õiguste eskaleerimise tee hostkasutajatele, kellel on /dev/kvm seadmel kirjutamisõigused.

Kuigi organisatsioonid nagu Red Hat on hinnanud haavatavust CVSS-i skooriga 7.0, keskendudes ebastabiilsusele ja teenusetõkestamisele, näitab avalik kontseptsioonitõend (PoC) palju hävitavamat ulatust: suvalise faili loomist otse hosti juurkataloogi.

Kaos mäluhaldusüksuses

Zapscape'i toimimisviis on peidetud KVM-i mäluhaldusüksusesse (MMU) ja sellesse, kuidas hüperviisor käsitleb leheküljetabeleid, kui üks külaline (L1) toimib teise alamkülalise (L2) hüperviisorina. Probleem seisneb loogilise järjestamise veas leheküljevigade käsitlemisel. Kerneli koodiradades teostati "aegunud juur" kontroll enne lehekülje otsingu funktsiooni, mitte pärast seda.

See vale järjestus käivitab klassikalise „kasuta pärast vabastamist” stsenaariumi . Taastamise ajal saab KVM eemaldada kasutatava juurkataloogi ja märkida selle kehtetuks. Kuna tervisekontroll on aga juba käima pandud, jätkab süsteem kaardistuste loomist enam kehtetu juurkataloogi alla. Huvitaval kombel on see sortimisprobleem koodis eksisteerinud juba alates 2008. aastast, kuid muutus kriitiliseks ja ärakasutatavaks pärast Linuxi kerneli 5.9 väljaandmist 2020. aasta juulis , kui kehtestati direktiiv, mille jõustamise süsteem lihtsalt lõpetas.

Nõuded ja piirangud

Selleks, et Zapscape'i saaks ära kasutada, peab keskkond vastama väga spetsiifilistele nõuetele. Esiteks peab KVM-moodulis olema lubatud pesastatud virtualiseerimine, mis on konfiguratsioon, mis võimaldab kolmetasandilist arhitektuuri (L0, L1 ja L2). Ründaja peab rünnaku algatama L1-kihilt , mis nõuab selle virtuaalmasina juurõigusi. Sealt edasi manipuleerib ründaja mälurežiime, samal ajal kui L2 alamkülalise tegevus sunnib L0-hosti algatama kvoodilehe hankimise, põhjustades mälu riknemist.

Riistvara tasandil varieeruvad tingimused olenevalt tootjast. AMD süsteemides , mis kasutavad pesastatud lehetabeleid ( SVM ), on haavatavus otsekohesem ega vaja täiendavaid funktsioone. Seevastu Inteli protsessorite puhul nõuab stsenaarium , et L1 külalisprotsessoril oleksid avatud nelja- ja viietasemelised EPT lehekäimise võimalused . See piirab Inteli rünnakuvektorit uuemate arhitektuuridega, täpsemalt Ice Lake-SP perekonnast ja edasi.

Väärib märkimist, et kuigi avalikul kontseptsioonitõestusel on õnnestunud kontrollitud keskkondades hostarvutisse pääseda, on turvauurijad teatanud, et teatud ümberkompileeritud kernelide puhul põhjustab ärakasutamine ründaja virtuaalmasina krahhi, toimides pigem teenusetõkestuse kui täieliku põgenemisena.

Leevenda, parandused ja strateegiad

Zapscape'i lõplik lahendus saabus Linuxi repositooriumidesse eelmise aasta juulis koos parandusega, mis parandab valideerimisjärjekorda. See parandus paigutab aegunud juurkataloogi kontrolli ümber nii, et see toimuks pärast MMU lehe eraldamist, tagades, et hüperviisor ei loo kustutatud juurkataloogi alla aktiivseid vastendusi. Need parandused on juba rakendatud stabiilse kerneli harudes ja neid levitatakse laialdaselt erinevate distributsioonide poolt.

Administraatoritele, kes ei saa kohe uuendada, on olemas väga tõhusad ajutised leevendusmeetmed. Prioriteetne toiming on keelata pesastatud virtualiseerimine kõigis serverites, kus see pole rangelt vajalik, edastades parameetri `nested=0` moodulitele `kvm_amd` või `kvm_intel` modprobe konfiguratsioonifailides. See meede nõuab mooduli uuesti laadimist, mis tähendab kõigi aktiivsete virtuaalmasinate peatamist.

Lõpuks, kui olete huvitatud lisateabest, leiate üksikasjad järgmiselt lingilt.


Lisa eelistatud allikana Google'is