Problemet är vad funktionen släpper referensen på. Den använder pekaren som iteratorn xa_for_each() returnerar, men i en miljö med flera processorkärnor kan en parallell operation, till exempel ett DISCARD-kommando från en annan vCPU, redan ha raderat och frigjort den posten. Funktionen gör då en "double-put" (dubbel frigöring) på ett minnesområde som inte längre är allokerat, vilket leder till en klassisk use-after-free. En angripare kan manipulera minnesheapen för att utnyttja detta tillstånd och kapa programflödet i värdkärnan .
Det är värt att notera att en tidigare sårbarhet i samma kod, CVE-2024-26598, delvis åtgärdade en liknande UAF i "cache-hit"-vägen genom att höja referensräkningen inuti vgic_its_check_cache() innan låset släpptes. Den lösningen täckte dock inte invalideringsvägen, vilket lämnade kapplöpningen öppen för exploatering via en annan triggermekanism
.
Gäst-till-värd-flykter är den farligaste typen av hypervisor-bugg eftersom de raserar den isoleringsbarriär som all molnverksamhet bygger på. Tidigare publika KVM-flykter har främst riktat sig mot x86-arkitekturen, ofta via buggar i QEMU eller AMD-specifik kod . ITScape är den första exploiten som visar ett utbrott från en oprivilegierad ARM64-gäst-VM genom själva den inbyggda KVM-koden i Linux-kärnan – inga buggar i användarrymdsemulatorer krävs
.
Konsekvenserna för molnleverantörer som kör ARM64-baserade tjänster (exempelvis AWS Graviton eller Ampere Altra) är allvarliga. En angripare kan:
De flesta säkerhetsteam har klassat sårbarheten med ett CVSS-värde över 9.0, vilket speglar dess kritiska allvarsgrad .
Den officiella rättelsen från Linux-utvecklarna ändrar logiken i vgic_its_invalidate_cache() så att vgic_put_irq() endast anropas på värdet som returneras av den atomära operationen xa_erase(). xa_erase() raderar posten och returnerar den gamla pekaren, eller NULL om posten redan var borta. På så sätt säkerställer korrigeringen att referensräkningen minskas exakt en gång, vilket eliminerar "double-put"-fönstret
.
Commit-meddelandet lyder: "KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry". Korrigeringen landade i den officiella kärnan i början av juni 2026 och drogs snabbt in i de stabila 6.x-serierna runt den 8–10 juni 2026. Stora distributioner som Red Hat, SUSE och Debian har också släppt bakåtporterade korrigeringar för sina supporterade kärngrenar
.
Hyunwoo Kim offentliggjorde en fungerande exploit på GitHub runt den 9–10 juni 2026. Repositoriet innehåller full källkod, steg-för-steg-instruktioner för att återskapa attacken och en teknisk beskrivning av exploateringstekniken .
Att en tillförlitlig PoC är publikt tillgänglig innebär att både automatiserade skanningsverktyg och riktiga angripare enkelt kan vapenfiera sårbarheten. Tidsfönstret mellan offentliggörande och aktiva attacker är därför mycket kort.
Om du driver en delad ARM64 KVM-infrastruktur – oavsett om det är AWS Graviton, Ampere Altra eller någon liknande plattform – ska du betrakta detta som en omedelbar och akut patchcykel.
Comments
0 comments