Când o mașină virtuală malițioasă poate accesa cheile criptografice ale gazdei, nu e doar un bug, ci o breșă majoră în înțelegerea izolării mediilor virtuale de către procesoarele moderne. Cercetătorii de la ETH Zurich au descoperit o variantă de tip Spectre denumită VMScape, care permite unei VM să extragă secrete dintr-un proces QEMU ne-modificat, pe procesoare AMD Zen 1–Zen 5 și pe unele modele Intel Coffee Lake, fără a compromite explicit gazda sau a modifica software-ul de virtualizare.
Originea problemei pleacă de la vechile slăbiciuni ale execuției speculative și ale unităților de predicție a branch-urilor. Procesoarele au introdus mecanisme pentru a separa predicțiile între kernel, utilizator și guest, însă această izolare nu este perfectă. Echipa a arătat că structurile partajate ale BPU, precum BTB, IBP/ITA și BHB, pot fi manipulate de cod rulat în guest astfel încât să modifice viteza și direcția predicțiilor într-un proces host, în acest caz componenta QEMU, care rulează în spațiul user. QEMU mapează memoria guest în propriul spațiu de adresare, ceea ce creează o fereastră pentru un side channel de tip FLUSH+RELOAD care transformă mici erori speculative în date recuperabile.
Metoda cercetătorilor combină un atac Spectre-BTI (Branch Target Injection) pentru a deturna un indirect branch din QEMU să execute speculativ un gadget de divulgare; pentru a extinde fereastra de execuție speculativă au construit seturi de evacuare a cache-ului țintind Last-Level Cache pe procesoare AMD Zen 4. ASLR, mecanismul care randomizează locațiile în memorie, a fost ocolit prin sondări pentru coliziuni de branch și forțare brută a adresei tamponului de reload, astfel localizând gadgetul vulnerabil.
Rezultatele sunt îngrijorătoare: VMScape poate extrage date arbitrare din memoria QEMU la aproximativ 32 de bytes pe secundă, cu o acuratețe pe byte de 98, 7% și o rată generală de exploatare de 43%. La acest ritm, o cheie de 4 KB, cum ar fi o cheie de criptare a unui disc, poate fi extrasă în circa 128 de secunde, iar întregul proces, inclusiv ocolirea ASLR, durează în jur de 772 de secunde, puțin sub 13 minute. Asta înseamnă că un atac bine planificat și susținut ar putea sustrage secrete importante în timpul unei sesiuni cloud închiriate.
Impactul asupra cloud-ului este clar: virtualizarea stă la baza oferirii multi-tenant, iar posibilitatea ca o instanță să citească memoria gazdei sau a altor instanțe subminează încrederea în izolare. Totuși, exploatarea VMScape cere competențe avansate, resurse pentru a construi seturile de evacuare a cache-ului și timp de execuție, factori care limitează, cel puțin parțial, răspândirea imediată a riscului către publicul larg.
Cercetătorii au raportat vulnerabilitatea către AMD și Intel pe 7 iunie, iar aceasta a primit identificatorul CVE-2025-40300. AMD a emis un buletin de securitate, iar dezvoltatorii kernel-ului Linux au propus și aplicat patch-uri care atenuează problema prin introducerea unei bariere de predicție a branch-urilor indirecte (IBPB) la VMEXIT, ceea ce practic golește BPU la trecerea din guest în host. Echipa de cercetare observă că această soluție pare să aibă un impact minim asupra performanței în sarcini obișnuite, deci este o măsură practică și aplicabilă.
Nu toate procesoarele sunt afectate: familia AMD Zen 1–Zen 5 este vulnerabilă, iar Intel Coffee Lake este impactat, în timp ce microarhitecturi mai noi precum Raptor Cove și Gracemont par neafectate. Diferențele între generații ilustrează cât de nuanțată este problema execuției speculative și cât de mult contează implementarea internă a predicției de branch. Pentru administratorii de cloud și furnizorii de servicii, mesajul este clar: actualizările de kernel și buletinele de securitate ale vendorilor rămân esențiale pentru atenuare.
Analiza tehnică din spatele VMScape scoate în evidență fragilitatea unor mecanisme hardware când sunt combinate cu suprafețele mari de atac create de virtualizare. Lucrarea ETH Zurich reamintește că securitatea modernă depinde de coordonarea între producătorii de procesoare, dezvoltatorii de kernel și proiectanții de software de virtualizare. Implementarea IBPB la VMEXIT este un exemplu concret de remediu aplicabil, iar cifrele raportate, 32 bytes/s, 98, 7% acuratețe, 43% rată de succes, 772 secunde pentru 4 KB, sunt utile pentru evaluarea riscului practic. Dacă sunteți administrator de sistem, verificați CVE-2025-40300, buletinul AMD și patch-urile kernel-ului Linux; dacă sunteți utilizator obișnuit, e bine de știut că astfel de atacuri sunt fezabile tehnic, dar greu de executat la scară largă.
VMScape subliniază câte straturi trebuie armonizate pentru securitate: microarhitectura procesoarelor, strategia de izolare a predicțiilor, implementările software precum QEMU și măsurile de hardening ale kernel-ului. De la numele CVE-2025-40300 la cifrele de 32 bytes pe secundă și 772 de secunde pentru o cheie de 4 KB, exemplul arată că o combinație de hardware și software poate transforma o vulnerabilitate teoretică într-un exploit practic. Creșterea colaborării între cercetarea academică și industrie rămâne esențială pentru a transforma aceste demonstrații în soluții aplicabile pe scară largă.
Ar trebui furnizorii de cloud să impună patch-urile imediat sau este rezonabil să aștepte evaluări suplimentare privind impactul asupra performanței?
Deci, ar trebui furnizorii de cloud să aplice imediat patch-urile pentru CVE-2025-40300 (IBPB la VMEXIT etc.) sau e rezonabil să mai aștepte teste de performanță și confirmări suplimentare, având în vedere costul potențial în latență pentru workload-uri critice vs riscul real de atac VMScape în practică?