CVE-2026-23401
KVM: x86/mmu: Drop/zap existing present SPTE even when creating an MMIO SPTE
Reported by linux · Published April 1, 2026
In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: Drop/zap existing present SPTE even when creating an MMIO SPTE When installing an emulated MMIO SPTE, do so *after* dropping/zapping the existing SPTE (if it's shadow-present). While commit a54aa15c6bda3 was right about it being impossible to convert a shadow-present SPTE to an MMIO SPTE due to a _guest_ write, it failed to account for writes to guest memory that are outside the scope of KVM. E.g. if host userspace modifies a shadowed gPTE to switch from a memslot to emulted MMIO and then the guest hits a relevant page fault, KVM will install the MMIO SPTE without first zapping the shadow-present SPTE. ------------[ cut here ]------------ is_shadow_present_pte(*sptep) WARNING: arch/x86/kvm/mmu/mmu.c:484 at mark_mmio_spte+0xb2/0xc0 [kvm], CPU#0: vmx_ept_stale_r/4292 Modules linked in: kvm_intel kvm irqbypass CPU: 0 UID: 1000 PID: 4292 Comm: vmx_ept_stale_r Not tainted 7.0.0-rc2-eafebd2d2ab0-sink-vm #319 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:mark_mmio_spte+0xb2/0xc0 [kvm] Call Trace: <TASK> mmu_set_spte+0x237/0x440 [kvm] ept_page_fault+0x535/0x7f0 [kvm] kvm_mmu_do_page_fault+0xee/0x1f0 [kvm] kvm_mmu_page_fault+0x8d/0x620 [kvm] vmx_handle_exit+0x18c/0x5a0 [kvm_intel] kvm_arch_vcpu_ioctl_run+0xc55/0x1c20 [kvm] kvm_vcpu_ioctl+0x2d5/0x980 [kvm] __x64_sys_ioctl+0x8a/0xd0 do_syscall_64+0xb5/0x730 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x47fa3f </TASK> ---[ end trace 0000000000000000 ]---
Fixed versions
Upgrade to a fixed version or later. Language registries are listed first, then Linux distributions, then vendor products.
| Package | Ecosystem | Fixed in |
|---|---|---|
| kernel | errata.rockylinux.org | 6.12.0-211.16.1.el10 |
| kernel-64k-debug-debuginfo | errata.rockylinux.org | 5.14.0-687.10.1.el9 |
| kernel-debug-core | errata.rockylinux.org | 6.12.0-211.16.1.el10, 4.18.0-553.123.1.el8 |
| kernel-64k-debug-modules | errata.rockylinux.org | 5.14.0-687.10.1.el9 |
| kernel-tools-libs-devel | errata.rockylinux.org | 5.14.0-687.10.1.el9, 4.18.0-553.123.1.el8 |
| kernel-debug-debuginfo | errata.rockylinux.org | 6.12.0-211.16.1.el10 |
| bpftool-debuginfo | errata.rockylinux.org | 0:4.18.0-553.123.1.el8_10.x86_64 |
| kernel-zfcpdump | errata.rockylinux.org | 6.12.0-211.16.1.el10, 5.14.0-687.10.1.el9 |
| kernel6.18-headers | Amazon Linux | 1:6.18.25-52.107.amzn2023 |
| kernel-debug-devel-matched | errata.rockylinux.org | 6.12.0-211.16.1.el10 |
| kernel-tools-debuginfo | errata.rockylinux.org | 5.14.0-687.10.1.el9 |
| kernel-rt-debug-modules-extra | errata.rockylinux.org | 6.12.0-211.16.1.el10 |
29 more packages have a fixed version. See every fix in Lookup.
Risk scores
Affected products
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | a54aa15c6bda3ca7e2f9e040ba968a1da303e24f, a54aa15c6bda3ca7e2f9e040ba968a1da303e24f, a54aa15c6bda3ca7e2f9e040ba968a1da303e24f |
| Linux | Linux | 5.13, 0, 5.15.203 |
| Red Hat | Red Hat Enterprise Linux 7 | |
| amazon:2023 | kernel6.18-headers | 0 |
| Red Hat | Red Hat Enterprise Linux 8 | |
| amazon:2023 | kernel6.18-devel | 0 |
| Red Hat | Red Hat Enterprise Linux 6 | |
| Red Hat | Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions | 0:5.14.0-70.178.1.rt21.250.el9_0 |
| amazon:2023 | python3-perf6.12 | 0 |
| amazon:2023 | kernel-libbpf-devel | 0 |
| Red Hat | Red Hat Enterprise Linux 9 | 0:5.14.0-687.10.1.el9_8 |
| amazon:2023 | kernel6.12-modules-extra | 0 |
| amazon:2023 | kernel6.12 | 0 |
| amazon:2023 | kernel6.12-devel | 0 |
| Red Hat | Red Hat Enterprise Linux 9 | |
| amazon:2023 | kernel-livepatch-6.18.25-52.107 | 0 |
| amazon:2023 | bpftool | 0 |
| Red Hat | Red Hat Enterprise Linux BaseOS EUS (v.9.6) | |
| Red Hat | Red Hat Enterprise Linux 8.6 Update Services for SAP Solutions | 0:4.18.0-372.191.1.el8_6 |
| amazon:2023 | perf6.12 | 0 |
…and 94 more
Timeline
- Mar 31, 2026 CVE Published
- Apr 1, 2026 Security Advisory (54 in total, the first dated here)
- May 6, 2026 Distribution Patch (55 in total, the first dated here)
- May 18, 2026 EPSS Score (27 in total, the first dated here)
- Jun 9, 2026 Coalition ESS Score
Query this with the API
The same record, from the CLI:
vulnetix vdb vuln CVE-2026-23401
vulnetix vdb fixes CVE-2026-23401
Or with curl, using the org id and key from your account page:
curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
"https://api.vdb.vulnetix.com/v2/vuln/CVE-2026-23401/fixes/registry"
The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart
References
- https://access.redhat.com/errata/RHSA-2026:15883 advisory
- https://access.redhat.com/errata/RHSA-2026:14339 advisory
- https://access.redhat.com/errata/RHSA-2026:19568 advisory
- https://access.redhat.com/errata/RHSA-2026:14230 advisory
- https://access.redhat.com/errata/RHSA-2026:19875 advisory
- RHBZ#2453803 issue
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-23401.json advisory
- https://access.redhat.com/errata/RHSA-2026:20593 advisory
- https://access.redhat.com/errata/RHSA-2026:13932 advisory
- https://access.redhat.com/errata/RHSA-2026:36531 advisory
- https://access.redhat.com/errata/RHSA-2026:36532 advisory
- https://access.redhat.com/security/cve/CVE-2026-23401 advisory
- https://access.redhat.com/errata/RHSA-2026:19569 advisory
…and 8 more