Nedávno boli zverejnené informácie o zraniteľnosti , ktorá ohrozuje cloudové servery. Táto zraniteľnosť umožňuje útočníkom prevziať úplnú kontrolu nad fyzickým strojom , čo je pre poskytovateľov cloudovej infraštruktúry nočná mora.
Zapscape, registrovaný pod identifikátorom CVE-2026-64561, je kritická zraniteľnosť v hypervízore Linux KVM, ktorá odhaľuje riziko, ktoré mnohé platformy neúmyselne preberajú povolením vnorenej virtualizácie. Táto zraniteľnosť umožňuje útočníkovi s oprávneniami jadra vo virtuálnom stroji (L1) spustiť kód s oprávneniami root na hostiteľskom systéme (L0), čím sa prelomí izolácia virtualizovaných prostredí.
Zapscape , považovaný za vysokorizikovú hrozbu, nielenže uľahčuje únik z virtuálneho počítača, ale tiež otvára lokálnu trasu eskalácie privilégií pre hostiteľských používateľov, ktorí majú oprávnenia na zápis na zariadení /dev/kvm.
Hoci organizácie ako Red Hat ohodnotili túto zraniteľnosť skóre CVSS 7.0 so zameraním na nestabilitu a odmietnutie služby, verejný dôkaz konceptu (PoC) ukazuje oveľa deštruktívnejší rozsah: vytvorenie ľubovoľného súboru priamo v koreňovom adresári hostiteľa.
Chaos v jednotke správy pamäte
Spôsob fungovania Zapscape je skrytý v jednotke správy pamäte (MMU) KVM a v tom, ako hypervízor spracováva tabuľky stránok, keď jeden hosť (L1) funguje ako hypervízor pre iného podhosťa (L2). Problém spočíva v logickej chybe poradia počas spracovania chýb stránok. V cestách kódu jadra sa kontrola „zastaraného koreňa“ vykonávala pred funkciou načítania stránok, namiesto po nej.
Táto nesprávna postupnosť spúšťa klasický scenár „po použití po uvoľnení“ . Počas obnovy môže KVM odstrániť koreňový adresár, ktorý používa, a označiť ho ako neplatný. Keďže však kontrola stavu už bola spustená, systém pokračuje vo vytváraní mapovaní pod koreňovým adresárom, ktorý už nie je platný. Je zaujímavé, že tento problém s triedením existuje v kóde už od roku 2008, ale stal sa kritickým a zneužiteľným po vydaní linuxového jadra 5.9 v júli 2020 , keď bola zavedená smernica, ktorú systém jednoducho prestal vynucovať.
Požiadavky a obmedzenia
Aby bolo možné zneužiť Zapscape, prostredie musí spĺňať veľmi špecifické požiadavky. Po prvé, v module KVM musí byť povolená vnorená virtualizácia, čo je konfigurácia, ktorá umožňuje trojvrstvovú architektúru (L0, L1 a L2). Útočník musí iniciovať útok z vrstvy L1 , čo vyžaduje oprávnenia root na danom virtuálnom počítači. Odtiaľ útočník manipuluje s režimami pamäte, zatiaľ čo aktivita sub-hosťa L2 núti hostiteľa L0 iniciovať načítanie stránok kvót, čo spôsobuje poškodenie pamäte.
Na hardvérovej úrovni sa podmienky líšia v závislosti od výrobcu. Na systémoch AMD , ktoré používajú vnorené tabuľky stránok ( SVM ), je zraniteľnosť priamočiarejšia a nevyžaduje žiadne ďalšie funkcie. Naopak, na procesoroch Intel scenár vyžaduje , aby hosť L1 mal odhalené možnosti prechodu stránok EPT na štyroch a piatich úrovniach . To obmedzuje vektor útoku na Intel na novšie architektúry, konkrétne od rodiny Ice Lake-SP vyššie.
Stojí za zmienku, že hoci sa verejnému overeniu konceptu podarilo uniknúť na hostiteľa v kontrolovaných prostrediach, bezpečnostní výskumníci uviedli, že na niektorých prekompilovaných jadrách exploit jednoducho zrúti virtuálny stroj útočníka, čo funguje skôr ako odmietnutie služby než ako úplný únik.
Zmierňovanie, záplaty a stratégie
Definitívne riešenie pre Zapscape prišlo do linuxových repozitárov minulý júl s opravou, ktorá opravuje poradie overovania. Táto oprava presúva kontrolu starého koreňového adresára tak, aby prebiehala po alokácii stránky MMU, čím sa zabezpečí, že hypervízor nevytvorí aktívne mapovania pod odstráneným koreňovým adresárom. Tieto opravy už boli implementované v stabilných vetvách jadra a sú široko distribuované rôznymi distribúciami.
Pre administrátorov, ktorí nemôžu okamžite vykonať aktualizáciu, existujú vysoko účinné dočasné opatrenia. Prioritným krokom je zakázať vnorenú virtualizáciu na všetkých serveroch, kde to nie je nevyhnutne potrebné, a to odovzdaním parametra `nested=0` modulom `kvm_amd` alebo `kvm_intel` v konfiguračných súboroch modprobe. Toto opatrenie vyžaduje opätovné načítanie modulu, čo znamená zastavenie všetkých aktívnych virtuálnych počítačov.
Na záver, ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.