ITScape (CVE 2026 46316) is a critical guest to host escape vulnerability in Linux KVM on arm64, allowing a malicious VM to execute arbitrary code on the host with full kernel privileges — and working public exploit c... The bug is a race condition in the vGIC ITS translation cache invalidation causing a use after f...

Create a landscape editorial hero image for this Studio Global article: What is the CVE-2026-46316 ("ITScape") vulnerability in Linux KVM/arm64's vGIC-ITS emulation, including its root cause as a race condition i. Article summary: Here is the full breakdown of **CVE-2026-46316 ("ITScape")**, based on the available evidence.. Topic tags: general, general web, user generated, government. Reference image context from search candidates: Reference image 1: visual subject "| CVE-2026-7572An off-by-one error (CWE-193) in the ConsumeUnit16Array and ConsumeUnit64Array functions in Velocidex Velociraptor before version 0.76.5 on Windows and Linux allows" source context "Latest Linux Vulnerabilities" Reference image 2: visual subject "# CVE-2026-23425: Linux Kernel Privilege Escalation Flaw. CVE-2026-23425 is a privilege escalation vulnerability in the Linux kernel affecting KVM ARM64 ID register i
A use-after-free vulnerability in the Linux kernel's KVM/arm64 subsystem lets a carefully crafted guest virtual machine break out of its sandbox and take full control of the underlying host. Tracked as CVE-2026-46316 and dubbed ITScape, it represents the first publicly documented guest-to-host escape exploit for KVM on arm64 — a milestone that puts every multi-tenant ARM cloud provider on an emergency patch deadline .
Disclosed by researcher Hyunwoo Kim in early June 2026, the vulnerability is not a theoretical concern; a fully working proof-of-concept exploit is publicly available on GitHub, triggering the race with simultaneous vCPU threads that issue DISCARD ITS commands while the LPI translation cache is being invalidated . The impact is a full host compromise from inside an untrusted VM.
ITScape is a race condition in the KVM in-kernel Virtual Generic Interrupt Controller's Interrupt Translation Service (vGIC-ITS). The vGIC-ITS handles Logical Processor Interrupt (LPI) translation for arm64 virtualized guests. When a translation cache entry must be invalidated, the kernel walks the entries and releases their references. The flaw is that the invalidation function was dropping a reference on every entry returned by the iterator — including entries that a concurrent operation had already removed from the cache .
This double-dereference creates a classic use-after-free (UAF): two execution paths can end up operating on memory that has been freed, giving the attacker a window to manipulate the heap and eventually hijack control flow at the host-kernel level .
The bug sits squarely in vgic_its_invalidate_cache(), which walks the per-ITS translation cache with xa_for_each() and calls vgic_put_irq() on the iterated pointer rather than on the value safely returned by xa_erase(). Multiple contexts can enter this function under different locks, so the race is entirely reachable from a guest by mixing ITS command handling, a GITS_CTLR write, and clearing EnableLPIs in a redistributor
.
While guest-to-host escapes are rare, they are the most dangerous class of hypervisor bug because they shatter the isolation boundary that cloud computing depends on. Previous public KVM escapes targeted x86, usually via QEMU or AMD-specific code . ITScape is the first working exploit to demonstrate a breakout from an unprivileged arm64 guest VM through the in-kernel KVM code itself — no userspace emulator bugs required
.
For cloud providers running Graviton, Ampere Altra, or any arm64 KVM host with multi-tenant workloads, a guest can:
Most security teams have rated the vulnerability above CVSS 9.0, reflecting its critical severity .
The vulnerable code sits in the LPI translation cache invalidation path. When the kernel needs to flush cache entries, it iterates through the XArray with xa_for_each() and calls vgic_put_irq() to release the reference count on each entry. The problem is that xa_for_each() returns entries that may have already been erased by a concurrent operation — such as a DISCARD ITS command issued from a different vCPU. The invalidate loop still drops the reference on that already-removed entry, causing a double-put and ultimately a use-after-free
.
An earlier vulnerability in the same code, CVE-2024-26598, had partially addressed a UAF in the LPI translation cache hit path by raising the refcount inside vgic_its_check_cache() before dropping the lock. That fix did not cover the invalidate path, leaving the race exploitable through a different trigger sequence
.
The upstream fix modifies vgic_its_invalidate_cache() so that vgic_put_irq() is called only on the value returned by xa_erase(), not on every entry the iterator touches. The commit message reads: "KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry"
.
Because xa_erase() atomically removes and returns the old entry — or returns NULL if the entry was already gone — the fix ensures the reference count is decremented exactly once, eliminating the double-free window. The patch landed in the upstream kernel in early June 2026 and was rapidly pulled into the 6.x stable series around June 8–10, 2026
. Major distributions including Red Hat, SUSE, and Debian have issued backported fixes for their supported kernel branches
.
Hyunwoo Kim publicly released a working exploit on GitHub around June 9–10, 2026. The repository includes full source code, step-by-step reproduction instructions, and a technical description of the exploitation technique . The exploit triggers the race by coordinating vCPU threads that simultaneously issue DISCARD commands and LPI translation cache lookups, precisely landing the use-after-free for host code execution.
The public availability of a reliable PoC means that commodity exploit scanners and real-world attackers can weaponize the vulnerability with minimal effort, shortening the window between disclosure and active attacks.
If you operate multi-tenant arm64 KVM infrastructure — AWS Graviton, Ampere Altra, or any similar platform — treat this as an immediate emergency patch cycle.
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
ITScape (CVE 2026 46316) is a critical guest to host escape vulnerability in Linux KVM on arm64, allowing a malicious VM to execute arbitrary code on the host with full kernel privileges — and working public exploit c...
ITScape (CVE 2026 46316) is a critical guest to host escape vulnerability in Linux KVM on arm64, allowing a malicious VM to execute arbitrary code on the host with full kernel privileges — and working public exploit c... The bug is a race condition in the vGIC ITS translation cache invalidation causing a use after free, affecting kernels built from late April 2024 through early June 2026.
Cloud operators running multi tenant arm64 hosts like AWS Graviton must patch immediately; a temporary mitigation is to disable the in kernel virtual ITS for untrusted guests.