VMScape: Den nya sårbarheten som bryter isoleringen mellan virtuella maskiner och hypervisorn

sårbarhet

Forskare vid ETH Zürich meddelade i ett blogginlägg att ny attack kallad VMScape (CVE-2025-40300), kapabel till kringgå Spectre-BTI-skydd och äventyra säkerheten i virtualiserade miljöer. Den här metoden gör det möjligt för en process i en virtuell maskin att extrahera känslig data från hypervisorkomponenter som körs i användarutrymmet, till exempel QEMU-KVM.

Det oroande är det att Minnet hos dessa komponenter kan innehålla viktig information, såsom åtkomstnycklar till krypterade diskar eller rester av känsliga data från andra gästsystem. Forskare demonstrerade genomförbarheten av attacken med en exploit som lyckades läcka krypteringsnycklar från en virtio-drivrutin i QEMU, vilket nådde en läckagehastighet på 32 byte per sekund på system med AMD Zen 4-processorer.

Hur VMScape fungerar

VMScape är baserat på manipulation från grenens destinationsbuffert (BTB), som används av processorer för att förutsäga grenar under spekulativ exekvering. Genom att injicera specialtillverkade grenmål kan en angripare tvinga fram felaktiga förutsägelser och utnyttja processorns cache för att härleda känslig information.

Även om Moderna system inkluderar redan försvar mot Spectre-BTI, Dessa tänkte inte på det både gästprocesser såsom hypervisorkomponenter i användarutrymmet delade samma skyddsnivåDetta gjorde att BTB-ingångarna kunde förväxlas mellan de två, vilket bröt den förväntade isoleringen.

Vår systematiska analys av isolering av skyddsdomäner visar att nuvarande mekanismer är för generella: på alla AMD Zen-processorer, inklusive den senaste Zen 5, kan branch predictor inte skilja mellan värd- och gästkörning, vilket möjliggör primitiva korsvirtualiserings-BTI (vBTI)-attackmetoder. Även om nyare Intel-processorer erbjuder bättre isolering kvarstår brister.

Med hjälp av en av dessa vBTI-primitiver skapade vi ett omfattande exploit som heter VMScape. VMScape tillåter en illvillig KVM-gäst att läcka känslig information, såsom krypterings-/dekrypteringsnycklar, från en användarutrymmeshypervisor som QEMU. Nedan kan du se en demo av VMScape som körs på AMD Zen 4.

Säkerhetskostnaden är inte liten, eftersom effekten beror på hur ofta systemet överför kontroll till användarutrymmet. I miljöer med emulerade enheter (standard i QEMU), Prestandaförsämringen kan uppgå till upp till 10 % i genomsnitt, medan man i intensiva tester, som diskoperationer med Virtio, har observerat en försämring på upp till 51 %. Vid lätta belastningar, som UnixBench, når påverkan knappt 1 %.

Berörda processorer

Sårbarhet påverkar alla AMD Zen-processorer (inklusive 5:e generationen), till Hygon-processorer redan äldre Intel-modeller, såsom de som är baserade på Coffee Lake (2017). Nyare processorer som Cascade Lake och Alder Lake utgör en delvis risk. Däremot inkluderar de senaste generationerna av Intel eIBRS-teknik, vilket förbättrar isoleringen mellan värd och gäst, även om det inte helt eliminerar attacker baserade på branch history manipulation (vBHI).

Attackens begränsningar

För tillfället VMScape har endast demonstrerats på system som använder KVM med QEMU för emulering av enheter i användarutrymmet. Hypervisorer som Xen påverkas inte, medan andra som VMware och Hyper-V ännu inte har utvärderats noggrant.

Åtgärder i Linuxkärnan

För att motverka denna attack, Uppdateringar har släppts till Linuxkärnan (versionerna 6.16.7, 6.12.47, 6.6.106, 6.1.152, 5.15.193 och 5.10.244). Lösningen implementerar användningen av IBPB-instruktionen (Indirekt grenprediktionsbarriär), som rensar grenprediktorns tillstånd efter varje övergång från den virtuella maskinen till användarutrymmet.

Skyddet kan aktiveras via kärnstartsalternativet:

vmscape={av|ibpb|tvång}

med ibpb-begränsning är endast aktiverad på sårbara processorer, medan tvång tillämpar det på alla arkitekturer. Sårbarhetsstatus och aktiva skydd finns på:

/sys/enheter/system/cpu/sårbarheter/vmscape

Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljerna i följande länk.