Skip to content
OpenAdvisories
Critical · 9.3 Public exploit CVE-2026-46316 EUVD-2026-35405GHSA-qcxh-2cm7-9fcc

KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry

Published Jun 9, 2026 · Updated Oct 19, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.17 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-7.0 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.2 Package: linux-azure-fde-7.0 Package: linux-azure-nvidia-6.14 Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-7.0 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.17 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-7.0 Package: linux-hwe-edge Package: linux-ibm Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oem-7.0 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-7.0 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.17 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry

vgic_its_invalidate_cache() walks the per-ITS translation cache with
xa_for_each() and drops the cache's reference on each entry with
vgic_put_irq(). It puts the iterated pointer, though, rather than the
value returned by xa_erase().

The function is called from contexts that do not exclude one another: the
ITS command handlers hold its_lock, the GITS_CTLR write path holds
cmd_lock, and the path that clears EnableLPIs in a redistributor's
GICR_CTLR holds neither. Two or more of them can drain the same cache
concurrently, and if each one observes the same entry, erases it and then
puts it, the single reference the cache holds on that entry is dropped
more than once. The entry can then be freed while an ITE still maps it.

xa_erase() is atomic and returns the previous entry, so put only the entry
that this context actually removed. The cache reference is then dropped
exactly once per entry even when the invalidations run concurrently, and
the behavior is unchanged when only one context runs.

Affected products

VendorProductAffectedFixed
Linux Linux 6.10 6.12.93

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 7.0.12-1 —
Debian 13 linux 6.12.94-1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS linux 7.0.0-27.27 USN-8488-1
Ubuntu 26.04 LTS linux-aws +1 7.0.0-1008.8 USN-8489-1, USN-8488-1
Ubuntu 26.04 LTS linux-azure 7.0.0-1010.10 USN-8603-1
Ubuntu 26.04 LTS linux-gcp +1 7.0.0-1007.7 USN-8488-1
Ubuntu 26.04 LTS linux-ibm +1 7.0.0-1009.9 USN-8603-1, USN-8488-1
Ubuntu 26.04 LTS linux-nvidia 7.0.0-1013.13 USN-8507-1
Ubuntu 26.04 LTS linux-raspi 7.0.0-1014.14 USN-8488-2
Ubuntu 26.04 LTS linux-riscv +1 7.0.0-27.27.1 USN-8488-1
Ubuntu 25.10 linux 6.17.0-40.40 USN-8490-1
Ubuntu 25.10 linux-aws 6.17.0-1019.19 USN-8490-1
Ubuntu 25.10 linux-azure +1 No fix yet —
Ubuntu 25.10 linux-gcp 6.17.0-1020.22 USN-8490-1
Ubuntu 25.10 linux-oracle 6.17.0-1018.18 USN-8490-1
Ubuntu 25.10 linux-raspi 6.17.0-1021.21 USN-8546-1
Ubuntu 25.10 linux-realtime 6.17.0-1017.19 USN-8490-2
Ubuntu 25.10 linux-riscv 6.17.0-40.40.1 —
Ubuntu 24.04 LTS linux-aws-6.17 6.17.0-1019.19~24.04.1 USN-8490-1
Ubuntu 24.04 LTS linux-azure-6.17 6.17.0-1021.21~24.04.1 USN-8604-1
Ubuntu 24.04 LTS linux-azure-7.0 7.0.0-1014.14~24.04.1 USN-8728-2
Ubuntu 24.04 LTS linux-azure-fde-7.0 7.0.0-1013.13~24.04.1 —
Ubuntu 24.04 LTS linux-gcp-6.17 6.17.0-1020.22~24.04.1 USN-8490-1
Ubuntu 24.04 LTS linux-gcp-7.0 +1 7.0.0-1011.11~24.04.1 USN-8728-3, USN-8728-1
Ubuntu 24.04 LTS linux-hwe-6.17 6.17.0-40.40~24.04.1 USN-8545-1
Ubuntu 24.04 LTS linux-hwe-7.0 7.0.0-28.28~24.04.1 USN-8569-1
Ubuntu 24.04 LTS linux-nvidia-6.17 6.17.0-1026.26 USN-8508-1
Ubuntu 24.04 LTS linux-oem-6.17 6.17.0-1028.28 USN-8491-1
Ubuntu 24.04 LTS linux-oracle-6.17 +1 6.17.0-1018.18~24.04.1 USN-8605-1, USN-8490-1
Ubuntu 24.04 LTS linux-riscv +19 No fix yet —
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.17 6.17.0-1017.19~24.04.1 USN-8490-2
ReleasePackageFixed inAdvisory
RHEL 10 rv +76 6.12.0-211.30.1.el10_2 RHSA-2026:34911
RHEL 9 rv +75 5.14.0-687.22.1.el9_8 RHSA-2026:36018
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 10.0 EUS rv +77 6.12.0-55.88.1.el10_0 RHSA-2026:39371
RHEL 9.6 EUS rv +77 5.14.0-570.127.1.el9_6 RHSA-2026:38902

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 10 rv +74 6.12.0-211.28.1.el10_2 ALSA-2026:34911, ALSA-2026:30129
AlmaLinux 9 rv +73 5.14.0-687.19.1.el9_8 ALSA-2026:36018, ALSA-2026:30848

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 9 kernel 5.14.0-687.22.1.el9_8 RLSA-2026:36018
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 kernel-64kb +8 6.12.0-160000.35.1 SUSE-SU-2026:22127-1
SLES for SAP 16.0 kernel-default-base 6.12.0-160000.35.1.160000.2.16 SUSE-SU-2026:22127-1
SLES 16.0 kernel-64kb +8 6.12.0-160000.35.1 SUSE-SU-2026:22127-1, SUSE-SU-2026:22099-1
SLES 16.0 kernel-default-base 6.12.0-160000.35.1.160000.2.16 SUSE-SU-2026:22127-1
SLE Micro 6.2 kernel-default-base 6.12.0-160000.35.1.160000.2.16 SUSE-SU-2026:22112-1
SLE Micro 6.2 kernel-rt +5 6.12.0-160000.35.1 SUSE-SU-2026:22117-1, SUSE-SU-2026:22112-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed kernel-source 7.0.12-1.1 openSUSE-SU-2026:11014-1
openSUSE Leap 16.0 kernel-default-base 6.12.0-160000.35.1.160000.2.16 openSUSE-SU-2026:20965-1
openSUSE Leap 16.0 kernel-rt +11 6.12.0-160000.35.1 openSUSE-SU-2026:20965-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.18.35-68.127 +1 1:1.0-0.amzn2023 ALAS2023-2026-1894, ALAS2023-2026-1881
Amazon Linux 2023 perf6.12 +11 1:6.12.92-122.166.amzn2023 ALAS2023-2026-1894
Amazon Linux 2023 perf6.18 +12 1:6.18.35-68.127.amzn2023 ALAS2023-2026-1881

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 10 rv +29 6.12.0-211.34.1.el10_2 ELSA-2026-34911
Oracle Linux 9 kernel-uek +34 6.12.0-204.92.4.3.el10uek ELSA-2026-500150, ELSA-2026-500004
Oracle Linux 9 rv +28 5.14.0-687.22.1.el9_8 ELSA-2026-36018

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • suominen/itscape ★ 0 · Jul 8, 2026

    Tracking ITScape (CVE-2026-46316), the KVM/arm64 guest-to-host escape

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 39

References