Zapscapeeen nieuwe Linux-kernelkwetsbaarheid, zou een aanvaller met kernelrechten binnen een L1-gastvirtuele machine (VM) in staat kunnen stellen om aan KVM-isolatie te ontsnappen en code op de host uit te voeren. Het risico is van toepassing wanneer geneste virtualisatie wordt blootgesteld aan niet-vertrouwde gasten.
De fout wordt bijgehouden als CVE-2026-64561 en heeft invloed op de Shadow Memory Management Unit (MMU) van KVM/x86, die schaduwpaginatabellen beheert die worden gebruikt voor de vertaling van genest gastgeheugen.
Beveiligingsonderzoeker Hyunwoo Kim, die de bug onthulde, zei dat het gedemonstreerde exploitpad opdrachten op de host kan uitvoeren met kernel- of root-privileges.
De upstream-fix is samengevoegd en beheerders die KVM-hosts draaien die geneste virtualisatie aan niet-vertrouwde gasten blootstellen, moeten updaten naar een vaste stabiele kernel of een leverancierspakket dat de patch backporteert.
Het vereiste L1-kernelprivilege betekent meestal gastroot. Intel-systemen vereisen ook dat zowel EPT-paginawandelinglengte 4 als 5 worden weergegeven aan de L1-gast. AMD heeft geen gelijkwaardige voorwaarde.
Zapscape is een verouderde fout bij het bestellen van cheques in de schaduw-MMU-boekhouding van KVM die kan leiden tot een use-after-free. Tijdens de afhandeling van door gasten geactiveerde paginafouten kan KVM MMU-pagina’s terughalen en de schaduw-MMU-hoofdpagina ongeldig maken die nog steeds wordt gebruikt door het foutafhandelingspad. Omdat het pad de root niet opnieuw controleert, kan KVM verdergaan onder de ongeldig gemaakte root.
In een technisch artikel beschreef Kim het probleem als een use-after-free in het recursieve zap-pad dat wordt gebruikt wanneer KVM schaduwpagina’s terugwint. KVM controleerde of de huidige root verouderd was voordat meer MMU-pagina’s beschikbaar werden gesteld. Reclaim kon vervolgens diezelfde root ongeldig maken, maar KVM zette het foutpad voort en creëerde er onderliggende schaduwpagina’s onder.
Deze onderliggende pagina’s erfden de ongeldige status van de ouder en werden nog steeds op de actieve MMU-paginalijst van KVM geplaatst. Bij een latere opschoning kan dezelfde lijstlink aan twee lijsten tegelijk worden gekoppeld en vervolgens de pagina worden vrijgegeven terwijl verouderde lijstreferenties overblijven, waardoor een bungelende link ontstaat en post-free write mogelijk is.
Kim’s publiek proof-of-concept gebruikt die primitief om een volledige keten te bouwen die een root-eigendomsbestand met de naam /Zapscape creëert op de host waarop de kwetsbare KVM draait.
Het proof-of-concept is gericht op AMD-geneste SVM/NPT op Linux 7.1.3. Kim raadt aan om het onder QEMU TCG te gebruiken voor veilig testen. QEMU is niet de kwetsbare component. Kim zei dat de bug in de KVM in de kernel leeft en onafhankelijk van de emulatie van QEMU wordt geactiveerd.
Kim’s artikel van 6 augustus bevat een openbare proof-of-concept, maar beweert niet dat de fout in het wild is uitgebuit. Kim beschreef het ook als “geen bewapende exploit die onmiddellijk wordt uitgevoerd” in cloudomgevingen, en zei dat voor gebruik in de echte wereld het verplaatsen van de L1-acties naar een gastkernelmodule zou vereisen en het aanpassen van de exploit aan de hostkernelconfiguratie en de geheugenbackend.
De National Vulnerability Database vermeldt Linux 5.9 en hoger als getroffen totdat stabiele releases zijn opgelost, waaronder 6.6.148, 6.12.101, 6.18.42, 7.1.6 en 7.2-rc5.
Red Hat kende in zijn advies een voorlopige CVSS-score van 7,0 toe en classificeerde het probleem als CWE-825, oftewel verlopen pointer-dereferentie.
De pakketstatus is afhankelijk van de tracker van elke Linux-leverancier, en niet alleen van de upstream-versiereeksen. Red Hat waarschuwt dat zijn pakketten vaak backported fixes bevatten zonder te rebasen op een nieuwe upstream-versie.
Vanaf 6 augustus 2026 vermeldde de tracker van Debian bullseye-, bookworm- en trixie-kernelpakketten, inclusief hun beveiligingsopslagplaatsen, als kwetsbaar. Het vermeldde forky ook als kwetsbaar en sid als vastgesteld op 7.1.6-1.
Volgens de tijdlijn van de openbaarmaking rapporteerde Kim het probleem op 11 juli 2026 aan [email protected]. Op 21 juli werd een patch gepost en samengevoegd, het probleem werd op 1 augustus onder een embargo van vijf dagen ingediend bij de linux-distros-lijst, en CVE-2026-64561 werd op 4 augustus toegewezen. Op 6 augustus volgde de publieke openbaarmaking.
De oplossing, samengevoegd als commit 2abd5287f083, verplaatst de controle van de verouderde root na make_mmu_pages_available(). Als reclaim de huidige root ongeldig maakt, herstart KVM de fout nu met RET_PF_RETRY in plaats van door te gaan met het toewijzen of ophalen onder de ongeldige root.
De onthulling volgt op Kim’s eerdere KVM-werk, waaronder Januscape (CVE-2026-53359), een afzonderlijk KVM/x86 shadow-MMU-probleem dat in juli door The Hacker News werd behandeld, en ITScape (CVE-2026-46316), een KVM/arm64-ontsnapping die in juni werd gepubliceerd.