Een use-after-free bug in de KVM-hypervisor van Linux kan worden geactiveerd vanaf een virtuele gastmachine en de schaduwpaginastatus van de hostkernel waarop deze draait, beschadigen.
De fout, genaamd ‘Januscape’ en gevolgd als CVE-2026-53359, zit in de schaduw-MMU-code die KVM deelt met zowel Intel als AMD. De publieke proof-of-concept brengt de host in paniek; de onderzoeker beweert dat een afzonderlijke, nog niet vrijgegeven exploit dezelfde bug omzet in volledige uitvoering van de hostcode.
Beveiligingsonderzoeker Hyunwoo Kim (@v4bel) heeft de bug gevonden en gerapporteerd. Hij beschreef Januscape als de eerste gast-naar-host-exploit die zowel op Intel als AMD kon worden geactiveerd, voor zover algemeen bekend. De fout bleef ongeveer 16 jaar onopgemerkt.
Volgens Kim werd de exploit gebruikt als een zero-day submission in Google’s kvmCTF, het gecontroleerde beloningsprogramma voor KVM-kwetsbaarheid dat tot $ 250.000 biedt voor volledige gast-naar-host-ontsnappingen.
Hoe het werkt
Om een virtuele machine te laten draaien, houdt KVM zijn eigen set paginatabellen bij die de geheugenindeling van de gast weerspiegelen. Wanneer het een van deze trackingpagina’s nodig heeft, zoekt het naar een bestaande om opnieuw te gebruiken.
Het probleem: het matchte ze alleen op geheugenadres en negeerde welk type trackingpagina het bemachtigde. Twee verschillende typen kunnen hetzelfde adres delen, maar totaal verschillende taken uitvoeren, waardoor KVM soms de verkeerde soort hergebruikt.
Door die verwarring worden de interne gegevens van KVM over welke pagina waar hoort, door elkaar gegooid, en als die gegevens eenmaal verkeerd zijn, moet er iets gebeuren.
Meestal merkt de kernel de rommel op en schakelt zichzelf ter plekke uit om schade te voorkomen. Die crash is wat de openbare demonstratie teweegbrengt: een gast kan de hele host omverwerpen en alle andere VM’s op die machine meenemen.
Het zeldzamere, ergste geval doet zich voor wanneer de vrijgekomen trackingpagina wordt uitgedeeld voor ander gebruik voordat de kernel is opgeschoond. De opruiming krabbelt vervolgens een waarde in het geheugen die deze niet langer bezit. Een aanvaller bepaalt alleen waar dat schrijven terechtkomt, niet wat er wordt geschreven, maar zelfs dat beperkte houvast kan worden omgezet in het uitvoeren van code op de host.

De fout gedraagt zich hetzelfde op Intel- en AMD-chips; alleen de laatste, moeilijkste stap om er volledige controle van te maken, vergt voor elk ander werk.
Wie wordt getroffen
De kwetsbare code is aanwezig sinds commit 2032a93d66fa in augustus 2010 (kernel 2.6.36-tijdperk) en werd opgelost door commit 81ccda30b4e8, samengevoegd met mainline op 19 juni 2026.
De aanval vereist twee dingen van de gastkant: rooten in de VM, een veelvoorkomende voorwaarde bij gehuurde cloudinstances, en geneste virtualisatie die door de host wordt blootgesteld. Zelfs op hosts die standaard hardware-EPT of NPT draaien, dwingt geneste virtualisatie KVM terug via de oude schaduw-MMU, waar de bug zit.
De exploit heeft geen medewerking nodig van QEMU of enige gebruikersruimte VMM. Het is puur een KVM-bug in de kernel.
Het praktische probleem is elke x86-omgeving waarin niet-vertrouwde gasten worden gehost en waarvoor geneste virtualisatie is ingeschakeld. Een aanvaller die één exemplaar van zo’n exemplaar huurt, kan de host in paniek brengen en alle andere tenant-VM’s op dezelfde fysieke machine uitschakelen.
Kim zei dat de achtergehouden volledige exploit code als root op de host uitvoert, waardoor andere gasten op dezelfde machine aan die root-toegang zouden worden blootgesteld. Op distributies als RHEL, waar /dev/kvm wereldschrijfbaar is (0666), merkte Kim op dat dezelfde bug ook zou kunnen dienen als een lokale escalatie van bevoegdheden naar root, hoewel het gebruik van het gast-naar-host-pad de grotere impact heeft.
Een paar drukke maanden voor één onderzoeker
Januscape is Kim’s derde onthulling van een Linux-kernelexploit in ongeveer twee maanden. In mei 2026 onthulde hij Dirty Frag (CVE-2026-43284 / CVE-2026-43500), een keten van kwetsbaarheden voor het schrijven van paginacaches die deterministische root levert op de meeste grote distributies, en dezelfde bugklasse uitbreidt als Dirty Pipe en Copy Fail.
In juni publiceerde hij ITScape (CVE-2026-46316), de eerste publiekelijk gedemonstreerde gast-naar-host-ontsnapping op KVM/arm64, waarbij gebruik werd gemaakt van een raceconditie in de virtuele interruptcontroller. Januscape voegt nu de x86-kant toe; dezelfde trigger wordt geactiveerd op zowel Intel als AMD, waarbij de PoC voor elke leverancier een afzonderlijk codepad draagt.
Google lanceerde kvmCTF in 2024, specifiek omdat KVM zowel Android als Google Cloud ondersteunt. Een afzonderlijke KVM x86-schaduwpaging use-after-free (CVE-2026-46113) met een gerelateerde maar duidelijke rmap-mismatch werd in mei 2026 opgelost.
Dat betekent dat er binnen twee maanden twee schaduw-MMU-use-after-frees in hetzelfde oude codepad moeten worden gebruikt.
Wat te doen
De oplossing is een toevoeging van één regel aan kvm_mmu_get_child_sp(): de voorwaarde voor hergebruik controleert nu role.word naast de gfn, zodat een schaduwpagina alleen opnieuw wordt gebruikt als zowel het framenummer als de rol overeenkomen. KVM-onderhouder Paolo Bonzini schreef de patch.
Vaste stabiele versies verzonden op 4 juli 2026: 7.1.3, 6.18.38, 6.12.95, 6.6.144, 6.1.177, 5.15.211 en 5.10.260. NVD heeft nog geen CVSS-score toegekend; wacht er niet op.
Als u een x86 KVM-host gebruikt die gasten met meerdere tenants met geneste virtualisatie accepteert, controleer dan of uw kernel commit 81ccda30b4e8 bevat. Distributiebackports kunnen de oplossing onder een ander versienummer dragen, dus controleer de pakketwijzigingslog in plaats van alleen op uname -r te vertrouwen.
Als u niet onmiddellijk kunt patchen, verwijdert het uitschakelen van geneste virtualisatie (kvm_intel.nested=0 of kvm_amd.nested=0) het aanvalspad voor niet-vertrouwde gasten. ARM64-hosts worden niet beïnvloed door Januscape; ITscape (CVE-2026-46316) is een afzonderlijk KVM/arm64-probleem.
De openbare PoC demonstreert een betrouwbare hostpaniek van een gast met een laadbare kernelmodule en seconden tot minuten racen. Behandel blootgestelde x86 KVM-hosts met geneste virtualisatie als patchdoelen met hoge prioriteit.