Skip to content
OpenAdvisories
Unscored CVE-2024-53196 EUVD-2024-51868GHSA-6jh5-fcvp-frc9

KVM: arm64: Don't retire aborted MMIO instruction

Published Dec 27, 2024 · Updated Nov 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: kernel 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.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.15 Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips 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.15 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx 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.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

KVM: arm64: Don't retire aborted MMIO instruction

Returning an abort to the guest for an unsupported MMIO access is a
documented feature of the KVM UAPI. Nevertheless, it's clear that this
plumbing has seen limited testing, since userspace can trivially cause a
WARN in the MMIO return:

WARNING: CPU: 0 PID: 30558 at arch/arm64/include/asm/kvm_emulate.h:536 kvm_handle_mmio_return+0x46c/0x5c4 arch/arm64/include/asm/kvm_emulate.h:536
Call trace:
kvm_handle_mmio_return+0x46c/0x5c4 arch/arm64/include/asm/kvm_emulate.h:536
kvm_arch_vcpu_ioctl_run+0x98/0x15b4 arch/arm64/kvm/arm.c:1133
kvm_vcpu_ioctl+0x75c/0xa78 virt/kvm/kvm_main.c:4487
__do_sys_ioctl fs/ioctl.c:51 [inline]
__se_sys_ioctl fs/ioctl.c:893 [inline]
__arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:893
__invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49
el0_svc_common+0x1e0/0x23c arch/arm64/kernel/syscall.c:132
do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
el0_svc+0x38/0x68 arch/arm64/kernel/entry-common.c:712
el0t_64_sync_handler+0x90/0xfc arch/arm64/kernel/entry-common.c:730
el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598

The splat is complaining that KVM is advancing PC while an exception is
pending, i.e. that KVM is retiring the MMIO instruction despite a
pending synchronous external abort. Womp womp.

Fix the glaring UAPI bug by skipping over all the MMIO emulation in
case there is a pending synchronous exception. Note that while userspace
is capable of pending an asynchronous exception (SError, IRQ, or FIQ),
it is still safe to retire the MMIO instruction in this case as (1) they
are by definition asynchronous, and (2) KVM relies on hardware support
for pending/delivering these exceptions instead of the software state
machine for advancing PC.

Affected products

VendorProductAffectedFixed
Linux Linux 5.5 6.1.120

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 6.12.3-1 —
Debian 13 linux 6.12.3-1 —
Debian 12 linux 6.1.123-1 —
Debian 11 linux-6.1 6.1.128-1~deb11u1 DLA-4076-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield No fix yet —
Ubuntu 24.04 LTS linux 6.8.0-58.60 USN-7449-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1027.29 USN-7449-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1027.32 USN-7449-1
Ubuntu 24.04 LTS linux-azure-6.11 6.11.0-1012.12~24.04.1 —
Ubuntu 24.04 LTS linux-azure-nvidia 6.8.0-1014.15 USN-7468-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1028.30 USN-7450-1
Ubuntu 24.04 LTS linux-gcp-6.11 6.11.0-1011.11~24.04.1 —
Ubuntu 24.04 LTS linux-gke 6.8.0-1023.27 USN-7450-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1010.12 USN-7450-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1024.24 USN-7449-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1026.29 USN-7449-1
Ubuntu 24.04 LTS linux-nvidia-6.11 6.11.0-1007.7 —
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1026.29.1 USN-7449-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-oem-6.11 6.11.0-1015.15 USN-7310-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1026.26 USN-7449-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1024.25 USN-7449-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1028.32 USN-7524-1
Ubuntu 24.04 LTS linux-realtime +1 No fix yet —
Ubuntu 24.04 LTS linux-riscv +1 6.8.0-58.60.1 USN-7449-1
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1017.18 —
Ubuntu 22.04 LTS linux +49 No fix yet —
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1027.29~22.04.1 USN-7451-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1027.32~22.04.1 USN-7449-1
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1028.30~22.04.1 USN-7452-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-58.60~22.04.1 USN-7449-2
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1024.24~22.04.1 —
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1026.29~22.04.1 USN-7449-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1024.25~22.04.1 USN-7449-1
Ubuntu 22.04 LTS linux-riscv-6.8 +1 6.8.0-58.60.1~22.04.1 USN-7449-1
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2023.24 USN-7523-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1020.21 USN-7453-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime +1 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1020.21~22.04.1 —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux-aws-5.15 +10 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb +6 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.26.1 SUSE-SU-2025:0428-1
SLES 15 SP6 kernel-coco +3 6.4.0-15061.12.coco15sp6.1 SUSE-SU-2025:0289-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.38.1.150600.12.16.2 SUSE-SU-2025:0499-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.1 kernel-default-base 6.4.0-24.1.21.4 SUSE-SU-2025:20248-1
SLE Micro 6.1 kernel-livepatch-MICRO-6-0-RT_Update_5 1-1.1 SUSE-SU-2025:20249-1
SLE Micro 6.1 kernel-livepatch-MICRO-6-0_Update_5 1-1.2 SUSE-SU-2025:20248-1
SLE Micro 6.1 kernel-rt +4 6.4.0-25.1 SUSE-SU-2025:20249-1, SUSE-SU-2025:20248-1
SLE Micro 6.0 kernel-default-base 6.4.0-24.1.21.4 SUSE-SU-2025:20165-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0-RT_Update_5 1-1.1 SUSE-SU-2025:20166-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0_Update_5 1-1.2 SUSE-SU-2025:20165-1
SLE Micro 6.0 kernel-rt +4 6.4.0-25.1 SUSE-SU-2025:20166-1, SUSE-SU-2025:20165-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_8 1-150600.1.3.1 SUSE-SU-2025:0557-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_8 1-150600.13.3.2 SUSE-SU-2025:0499-1
SUSE Real Time Module 15 SP6 kernel-rt +3 6.4.0-150600.10.26.1 SUSE-SU-2025:0557-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +10 6.4.0-150600.23.38.1 SUSE-SU-2025:0499-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.26.1 SUSE-SU-2025:0428-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.38.1.150600.12.16.2 SUSE-SU-2025:0499-1
openSUSE Leap 15.6 kernel-rt +3 6.4.0-150600.10.26.1 SUSE-SU-2025:0557-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.124-134.200 1.0-0.amzn2023 ALAS2023-2025-809
Amazon Linux 2023 perf +14 6.1.124-134.200.amzn2023 ALAS2023-2025-809

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 2 (CBL-Mariner) kernel No fix yet —

Advisories 21

References