CVE-2026-52969

HIGHCVSS 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: adp:redhat-sadp, epss, ghsa
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)
EG Risk
36(Track)
EG Risk 36/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity70% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS
4.9%
KEV
Not listed

Published

June 24, 2026

Last Modified

July 15, 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(2)

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

Data Freshness Timeline

(refreshed 10× in last 7d / 95× 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-24 14:18 UTCEPSS rescore
  2. 2026-07-23 14:18 UTCEPSS rescore
  3. 2026-07-23 03:19 UTCEG score recompute
  4. 2026-07-22 14:08 UTCEPSS rescore
  5. 2026-07-21 15:25 UTCEPSS rescore
  6. 2026-07-20 17:08 UTCEPSS rescore
  7. 2026-07-19 14:31 UTCEPSS rescore
  8. 2026-07-19 14:31 UTCEPSS rescore
  9. 2026-07-19 02:29 UTCEPSS rescore
  10. 2026-07-18 10:04 UTCEPSS rescore
  11. 2026-07-16 20:14 UTCVendor advisory
  12. 2026-07-16 20:14 UTCGHSA enrichment
  13. 2026-07-16 17:03 UTCEPSS rescore
  14. 2026-07-16 07:00 UTCVendor advisory
  15. 2026-07-16 07:00 UTCGHSA enrichment
  16. 2026-07-15 18:59 UTCVendor advisory
  17. 2026-07-15 18:59 UTCGHSA enrichment
  18. 2026-07-15 16:57 UTCEPSS rescore
  19. 2026-07-15 16:57 UTCEPSS rescore
  20. 2026-07-15 06:58 UTCVendor advisory
  21. 2026-07-15 06:58 UTCGHSA enrichment
  22. 2026-07-15 03:14 UTCMITRE cvelistV5CVSS v3 → 7
  23. 2026-07-15 02:00 UTCEPSS rescore
  24. 2026-07-15 02:00 UTCEPSS rescore
  25. 2026-07-15 01:24 UTCNVD updateCVSS v3 → 7.8
Show 72 more
  1. 2026-07-15 00:50 UTCMITRE cvelistV5CVSS v3 → 7
  2. 2026-07-14 21:22 UTCNVD updateCVSS v3 → 7.8
  3. 2026-07-14 18:55 UTCVendor advisory
  4. 2026-07-14 18:55 UTCGHSA enrichment
  5. 2026-07-14 06:53 UTCVendor advisory
  6. 2026-07-14 06:52 UTCGHSA enrichment
  7. 2026-07-13 22:31 UTCEPSS rescore
  8. 2026-07-13 18:52 UTCGHSA enrichment
  9. 2026-07-13 06:50 UTCGHSA enrichment
  10. 2026-07-13 06:13 UTCEPSS rescore
  11. 2026-07-13 06:13 UTCEPSS rescore
  12. 2026-07-12 18:49 UTCVendor advisory
  13. 2026-07-12 18:49 UTCGHSA enrichment
  14. 2026-07-12 06:48 UTCVendor advisory
  15. 2026-07-12 06:48 UTCGHSA enrichment
  16. 2026-07-12 05:46 UTCEPSS rescore
  17. 2026-07-11 18:44 UTCVendor advisory
  18. 2026-07-11 18:44 UTCGHSA enrichment
  19. 2026-07-11 08:27 UTCEPSS rescore
  20. 2026-07-11 08:27 UTCEPSS rescore
  21. 2026-07-11 06:43 UTCVendor advisory
  22. 2026-07-11 06:42 UTCGHSA enrichment
  23. 2026-07-10 18:41 UTCVendor advisory
  24. 2026-07-10 18:41 UTCGHSA enrichment
  25. 2026-07-10 06:39 UTCGHSA enrichment
  26. 2026-07-09 19:10 UTCEPSS rescore
  27. 2026-07-09 19:10 UTCEPSS rescore
  28. 2026-07-09 18:35 UTCGHSA enrichment
  29. 2026-07-09 06:35 UTCGHSA enrichment
  30. 2026-07-08 18:32 UTCGHSA enrichment
  31. 2026-07-08 15:16 UTCEPSS rescore
  32. 2026-07-08 15:16 UTCEPSS rescore
  33. 2026-07-08 06:31 UTCGHSA enrichment
  34. 2026-07-07 18:29 UTCGHSA enrichment
  35. 2026-07-07 13:46 UTCEPSS rescore
  36. 2026-07-07 13:46 UTCEPSS rescore
  37. 2026-07-07 06:27 UTCGHSA enrichment
  38. 2026-07-06 18:23 UTCGHSA enrichment
  39. 2026-07-06 16:27 UTCEPSS rescore
  40. 2026-07-06 16:27 UTCEPSS rescore
  41. 2026-07-06 06:17 UTCGHSA enrichment
  42. 2026-07-06 02:23 UTCEPSS rescore
  43. 2026-07-06 02:23 UTCEPSS rescore
  44. 2026-07-05 18:11 UTCGHSA enrichment
  45. 2026-07-05 06:09 UTCGHSA enrichment
  46. 2026-07-05 02:31 UTCEPSS rescore
  47. 2026-07-05 02:30 UTCEPSS rescore
  48. 2026-07-04 17:59 UTCGHSA enrichment
  49. 2026-07-04 06:31 UTCEPSS rescore
  50. 2026-07-04 05:57 UTCGHSA enrichment
  51. 2026-07-03 17:45 UTCGHSA enrichment
  52. 2026-07-03 05:44 UTCGHSA enrichment
  53. 2026-07-02 17:40 UTCGHSA enrichment
  54. 2026-07-02 05:38 UTCGHSA enrichment
  55. 2026-07-01 17:36 UTCGHSA enrichment
  56. 2026-07-01 15:07 UTCEPSS rescore
  57. 2026-07-01 05:35 UTCGHSA enrichment
  58. 2026-06-30 23:22 UTCEPSS rescore
  59. 2026-06-30 17:34 UTCGHSA enrichment
  60. 2026-06-30 05:32 UTCEG score recompute 7.00
  61. 2026-06-30 05:32 UTCGHSA enrichment
  62. 2026-06-30 04:33 UTCNVD updateCVSS v3 → 7 · severity → HIGH
  63. 2026-06-29 14:06 UTCEPSS rescore
  64. 2026-06-29 14:06 UTCEPSS rescore
  65. 2026-06-28 14:07 UTCEPSS rescore
  66. 2026-06-28 04:56 UTCEPSS rescore
  67. 2026-06-28 04:56 UTCEPSS rescore
  68. 2026-06-27 11:59 UTCGHSA enrichment
  69. 2026-06-27 03:08 UTCEPSS rescore
  70. 2026-06-25 13:49 UTCEPSS rescore
  71. 2026-06-24 18:28 UTCEG score recompute
  72. 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 July 15, 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.9% 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.