CVE-2026-52969

HIGHPre-NVD 7.07.0
EchelonGraph scoreHIGH confidence

Score 7.0 from GitHub Security Advisory (severity: HIGH) published 2026-06-24. a secondary CVSS source baseline 7.0; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 3 sources updated this week
7.0
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.0Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

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

KVM: Reject wrapped offset in kvm_reset_dirty_gfn()

kvm_reset_dirty_gfn() guards the gfn range with

if (!memslot || (offset + __fls(mask)) >= memslot->npages) return;

but offset is u64 and the addition is unchecked. The check can be silently bypassed by a u64 wrap.

The dirty ring backing those entries is MAP_SHARED at KVM_DIRTY_LOG_PAGE_OFFSET of the vcpu fd, so the VMM can rewrite the slot and offset fields of any entry between when the kernel pushes them and when KVM_RESET_DIRTY_RINGS consumes them. On reset, kvm_dirty_ring_reset() re-reads the values via READ_ONCE() and feeds them straight back into this check; only the flags handshake is treated as the handover, the slot/offset payload is taken on trust.

Crafting two entries

entry[i].offset = 0xffffffffffffffc1 entry[i+1].offset = 0

makes the coalescing loop in kvm_dirty_ring_reset() compute

delta = (s64)(0 - 0xffffffffffffffc1) = 63

which falls in [0, BITS_PER_LONG), so it folds entry[i+1] into the existing mask by setting bit 63. The trailing kvm_reset_dirty_gfn() call then sees offset = 0xffffffffffffffc1 and __fls(mask) = 63; the sum is 0 in u64 and the bounds check passes.

That offset propagates into kvm_arch_mmu_enable_log_dirty_pt_masked() unchanged. On the legacy MMU path -- kvm_memslots_have_rmaps() == true, i.e. shadow paging, any VM that has allocated shadow roots, or a write-tracked slot -- it reaches gfn_to_rmap(), which indexes slot->arch.rmap[0][] with a near-U64_MAX gfn. That is an out-of-bounds load of a kvm_rmap_head, followed by a conditional clear of PT_WRITABLE_MASK in whatever the loaded pointer points at. The path is reachable from any process holding /dev/kvm.

Range-check offset on its own first, so the addition cannot wrap. memslot->npages is bounded well below U64_MAX, so once offset < npages holds, offset + __fls(mask) (with __fls(mask) < BITS_PER_LONG) stays in range.

CVSS v3
7.0
EG Score
7.0(high)
EPSS
4.3%
KEV
Not listed

Published

June 24, 2026

Last Modified

June 30, 2026

Advisory Details (10)

Auto-updated Jun 30, 2026
Patch available. Sources: redhat.
redhat

2492434 – (CVE-2026-52969) CVE-2026-52969 kernel: KVM: Reject wrapped offset in kvm_reset_dirty_gfn()

https://bugzilla.redhat.com/show_bug.cgi?id=2492434
redhat Patch Available

cve-details

https://access.redhat.com/security/cve/CVE-2026-52969
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ecf9b3ea7847fe14f34b8c41f00de1eb95c747da
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/b315b033a877b1ee6d827810b5d7bb4392ffcf8d
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/74f1a22f7a80f03d28ad8551a2d25d563433addf
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/577a8d3bae0531f0e5ccfac919cd8192f920a804
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/0eb281eb95b2d4eea4db1da5fe91023aecc97095
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/0d419c23bb11b5c9664de777c47c1f04a235882d
generic

KVM: Reject wrapped offset in kvm_reset_dirty_gfn() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/01b71b930f15728aa8599478a7ce90c19dcd9fc2

Vendor Advisories for CVE-2026-52969(2)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 37× in last 7d / 49× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-06 18:23 UTCEG score recompute
  2. 2026-07-06 18:23 UTCGHSA enrichment
  3. 2026-07-06 16:27 UTCEPSS rescore
  4. 2026-07-06 16:27 UTCEPSS rescore
  5. 2026-07-06 06:17 UTCEG score recompute
  6. 2026-07-06 06:17 UTCGHSA enrichment
  7. 2026-07-06 02:23 UTCEPSS rescore
  8. 2026-07-06 02:23 UTCEPSS rescore
  9. 2026-07-05 18:11 UTCEG score recompute
  10. 2026-07-05 18:11 UTCGHSA enrichment
  11. 2026-07-05 06:10 UTCEG score recompute
  12. 2026-07-05 06:09 UTCGHSA enrichment
  13. 2026-07-05 02:31 UTCEPSS rescore
  14. 2026-07-05 02:30 UTCEPSS rescore
  15. 2026-07-04 17:59 UTCEG score recompute
  16. 2026-07-04 17:59 UTCGHSA enrichment
  17. 2026-07-04 06:31 UTCEPSS rescore
  18. 2026-07-04 05:57 UTCEG score recompute
  19. 2026-07-04 05:57 UTCGHSA enrichment
  20. 2026-07-03 17:45 UTCEG score recompute
  21. 2026-07-03 17:45 UTCGHSA enrichment
  22. 2026-07-03 05:44 UTCEG score recompute
  23. 2026-07-03 05:44 UTCGHSA enrichment
  24. 2026-07-02 17:40 UTCEG score recompute
  25. 2026-07-02 17:40 UTCGHSA enrichment
Show 24 more
  1. 2026-07-02 05:38 UTCEG score recompute
  2. 2026-07-02 05:38 UTCGHSA enrichment
  3. 2026-07-01 17:37 UTCEG score recompute
  4. 2026-07-01 17:36 UTCGHSA enrichment
  5. 2026-07-01 15:07 UTCEPSS rescore
  6. 2026-07-01 05:35 UTCEG score recompute
  7. 2026-07-01 05:35 UTCGHSA enrichment
  8. 2026-06-30 23:22 UTCEPSS rescore
  9. 2026-06-30 17:34 UTCEG score recompute
  10. 2026-06-30 17:34 UTCGHSA enrichment
  11. 2026-06-30 05:32 UTCEG score recompute 7.00
  12. 2026-06-30 05:32 UTCGHSA enrichment
  13. 2026-06-30 04:33 UTCNVD updateCVSS v3 → 7 · severity → HIGH
  14. 2026-06-29 14:06 UTCEPSS rescore
  15. 2026-06-29 14:06 UTCEPSS rescore
  16. 2026-06-28 14:07 UTCEPSS rescore
  17. 2026-06-28 04:56 UTCEPSS rescore
  18. 2026-06-28 04:56 UTCEPSS rescore
  19. 2026-06-27 11:59 UTCEG score recompute
  20. 2026-06-27 11:59 UTCGHSA enrichment
  21. 2026-06-27 03:08 UTCEPSS rescore
  22. 2026-06-25 13:49 UTCEPSS rescore
  23. 2026-06-24 18:28 UTCEG score recompute
  24. 2026-06-24 18:02 UTCNVD updatefirst tracked

Frequently asked(5)

What is CVE-2026-52969?
CVE-2026-52969 is a high vulnerability published on June 24, 2026. In the Linux kernel, the following vulnerability has been resolved: KVM: Reject wrapped offset in kvmresetdirty_gfn() kvmresetdirty_gfn() guards the gfn range with if (!memslot || (offset + fls(mask)) >= memslot->npages) return; but offset is u64 and the addition is unchecked. The check can be…
When was CVE-2026-52969 disclosed?
CVE-2026-52969 was first published in the National Vulnerability Database on June 24, 2026, with the most recent update on June 30, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-52969 actively exploited?
CVE-2026-52969 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 4.3% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-52969?
CVE-2026-52969 has a CVSS v3 base score of 7.0 (NVD).
How do I remediate CVE-2026-52969?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-52969, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-52969

Explore →

Is Your Infrastructure Affected by CVE-2026-52969?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.