
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-52969 is an integer overflow vulnerability in the Linux kernel's KVM subsystem, specifically in the kvm_reset_dirty_gfn() function, that allows a local attacker with VMM access to bypass bounds checking and trigger out-of-bounds memory access. The vulnerability was published on June 24, 2026, and affects Linux kernel versions from 5.11 up to (but not including) the fixed releases: 5.15.209, 6.1.175, 6.6.141, 6.12.91, 6.18.33, 7.0.10, and 7.1. Red Hat Enterprise Linux 6 through 10 are listed as unaffected. It carries a CVSS v3.1 base score of 7.0 (High) (Red Hat CVE, Red Hat Bugzilla).
The root cause is an unchecked u64 integer overflow (CWE-190) in kvm_reset_dirty_gfn(), which validates the dirty ring entry with (offset + __fls(mask)) >= memslot->npages — but since offset is a u64, the addition can silently wrap around to zero, bypassing the check entirely. The dirty ring backing is MAP_SHARED memory at KVM_DIRTY_LOG_PAGE_OFFSET of the vcpu file descriptor, meaning a VMM process (e.g., QEMU) can rewrite the slot and offset fields of dirty ring entries between when the kernel pushes them and when KVM_RESET_DIRTY_RINGS consumes them. An attacker crafts two entries with entry[i].offset = 0xffffffffffffffc1 and entry[i+1].offset = 0; the coalescing loop computes a delta of 63, folds the entries, and the resulting offset 0xffffffffffffffc1 with __fls(mask) = 63 sums to 0 in u64, passing the bounds check. The invalid offset then propagates into kvm_arch_mmu_enable_log_dirty_pt_masked(), and on the legacy MMU path (shadow paging), reaches gfn_to_rmap(), which performs an out-of-bounds load using a near-U64_MAX GFN index into slot->arch.rmap[0][] (Red Hat Bugzilla).
Successful exploitation allows a local attacker with access to /dev/kvm (i.e., a VMM process such as QEMU) to perform an out-of-bounds memory read and a conditional write (PT_WRITABLE_MASK clear) on arbitrary kernel memory, potentially leading to memory corruption or local privilege escalation to kernel-level code execution. The impact is limited to the local system and requires the legacy MMU path (shadow paging) to be active — specifically, kvm_memslots_have_rmaps() must return true, meaning shadow roots have been allocated or a write-tracked slot is in use. Confidentiality, integrity, and availability are all rated as HIGH in the CVSS scoring (Red Hat CVE, Red Hat Bugzilla).
/dev/kvm (e.g., a QEMU instance or equivalent VMM) on a system running a vulnerable kernel (5.11 ≤ version < patched release) with shadow paging enabled (kvm_memslots_have_rmaps() == true).KVM_CAP_DIRTY_LOG_RING) so that dirty GFN entries are written to the shared MAP_SHARED ring buffer at KVM_DIRTY_LOG_PAGE_OFFSET of the vcpu fd.KVM_RESET_DIRTY_RINGS is issued, rewrite two consecutive dirty ring entries in the shared memory: set entry[i].offset = 0xffffffffffffffc1 and entry[i+1].offset = 0, exploiting the fact that the slot/offset payload is taken on trust (only the flags handshake is validated).KVM_RESET_DIRTY_RINGS ioctl, causing kvm_dirty_ring_reset() to re-read the crafted entries via READ_ONCE(), compute delta = 63, coalesce the entries, and call kvm_reset_dirty_gfn() with offset = 0xffffffffffffffc1 and __fls(mask) = 63.0xffffffffffffffc1 + 63 wraps to 0, which is less than memslot->npages, so the bounds check passes silently.kvm_arch_mmu_enable_log_dirty_pt_masked() → gfn_to_rmap(), which indexes slot->arch.rmap[0][] with a near-U64_MAX GFN, performing an out-of-bounds load and a conditional kernel memory write, potentially enabling memory corruption or privilege escalation (Red Hat Bugzilla).dmesg or /var/log/kern.log referencing kvm_reset_dirty_gfn, gfn_to_rmap, or kvm_arch_mmu_enable_log_dirty_pt_masked with out-of-bounds access addresses near U64_MAX.KVM_RESET_DIRTY_RINGS ioctl calls.Apply the upstream Linux kernel patches that add a standalone range check on offset before the addition in kvm_reset_dirty_gfn(), ensuring offset < memslot->npages is validated independently before any arithmetic. Fixed versions are: 5.15.209, 6.1.175, 6.6.141, 6.12.91, 6.18.33, 7.0.10, and 7.1 (mainline). As a workaround where patching is not immediately possible, restrict access to /dev/kvm to only fully trusted VMM processes, and consider disabling shadow paging (use TDP/EPT/NPT instead) to prevent the vulnerable legacy MMU code path from being reached. Red Hat Enterprise Linux 6–10 are listed as unaffected (Red Hat CVE, Red Hat Bugzilla).
Red Hat has assessed all supported RHEL versions (6–10) as unaffected and tracked the issue via Bugzilla with high severity. The upstream kernel security advisory was published via the linux-cve-announce mailing list. No significant broader media coverage or notable researcher commentary has been observed beyond standard vulnerability tracking (Red Hat Bugzilla).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."