CVE-2026-81627
qemu-kvm: VAPIC writable ROM alias can escape the option-ROM window and expose locked SMRAM
Severity
ImportantRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · August 26, 2026
Updated · November 5, 2026
Description
A flaw was found in QEMU. The VAPIC setup hypercall in hw/i386/vapic.c does not validate that the writable RAM alias remains within the option ROM window. A privileged guest user on a Q35/KVM machine can position this alias over locked SMRAM, bypassing chipset D_LCK protection and injecting code into System Management Mode memory.
Statement
This flaw allows a privileged guest to bypass SMRAM locking on Q35 machine types by placing the VAPIC writable ROM alias outside the option-ROM window. While the kvmvapic TPR optimization is normally used only by 32-bit Windows guests, any privileged guest can deliberately invoke the VAPIC setup hypercall to trigger the vulnerable code path. Exploitation requires guest root access and KVM acceleration.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
The VAPIC TPR optimization can be disabled by preventing the kvmvapic option ROM from loading. When using libvirt, set the following in the guest's domain XML:
<features>
<apic/>
<hyperv>
<vapic state='off'/>
</hyperv>
</features>
When using QEMU directly, pass -global kvmvapic.rom=off on the command line.
This optimization is only used by 32-bit Windows guests for MMIO-based TPR register access. Linux guests, 64-bit Windows guests, and any guest using x2APIC or MSR-based TPR access are unaffected by disabling it.
CVSS / CWE
CVSS 3.1 · 8.2CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
CWE-787 · Out-of-bounds Write