KVM: x86: Fix shadow paging use-after-free due to unexpected GFN
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 36 fixed, 1 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-416 and the CVSS impact.
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Fix shadow paging use-after-free due to unexpected GFN The shadow MMU computes GFNs for direct shadow pages using sp->gfn plus the SPTE index. This assumption breaks for shadow paging if the guest page tables are modified between VM entries (similar to commit aad885e77496, "KVM: x86/mmu: Drop/zap existing present SPTE even when creating an MMIO SPTE", 2026-03-27). The flow is as follows: - a PDE is installed for a 2MB mapping, and a page in that area is accessed. KVM creates a kvm_mmu_page consisting of 512 4KB pages; the kvm_mmu_page is marked by FNAME(fetch) as direct-mapped because the guest's mapping is a huge page (and thus contiguous). - the PDE mapping is changed from outside the guest. - the guest accesses another page in the same 2MB area. KVM installs a new leaf SPTE and rmap entry; the SPTE uses the "correct" GFN (i.e. based on the new mapping, as changed in the previous step) but that GFN is outside of the [sp->gfn, sp->gfn + 511] range; therefore the rmap entry cannot be found and removed when the kvm_mmu_page is zapped. - the memslot that covers the first 2MB mapping is deleted, and the kvm_mmu_page for the now-invalid GPA is zapped. However, rmap_remove() only looks at the [sp->gfn, sp->gfn + 511] range established in step 1, and fails to find the rmap entry that was recorded by step 3. - any operation that causes an rmap walk for the same page accessed by step 3 then walks a stale rmap and dereferences a freed kvm_mmu_page. This includes dirty logging or MMU notifier invalidations (e.g., from MADV_DONTNEED). The underlying issue is that KVM's walking of shadow PTEs assumes that if a SPTE is present when KVM wants to install a non-leaf SPTE, then the existing kvm_mmu_page must be for the correct gfn. Because the only way for the gfn to be wrong is if KVM messed up and failed to zap a SPTE... which shouldn't happen, but *actually* only happens in response to a guest write. That bug dates back literally forever, as even the first version of KVM assumes that the GFN matches and walks into the "wrong" shadow page. However, that was only an imprecision until 2032a93d66fa ("KVM: MMU: Don't allocate gfns page for direct mmu pages") came along. Fix it by checking for a target gfn mismatch and zapping the existing SPTE. That way the old SP and rmap entries are gone, KVM installs the rmap in the right location, and everyone is happy.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Linux | Linux | 2.6.20 and later | 5.15.222, 6.1.175, 6.6.140, 6.12.88, 6.18.30, 7.0.7, 7.1 | Patch available | CNA |
- Linux VendorLinux Affected 2.6.20 and later Fixed in 5.15.222, 6.1.175, 6.6.140, 6.12.88, 6.18.30, 7.0.7, 7.1 Patch available CNA
CPE configurations NVD · 3
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.20 to before 6.1.175; 6.2 to before 6.6.140; 6.7 to before 6.12.88; 6.13 to before 6.18.30; 6.19 to before 7.0.7 | Vulnerable | Linux |
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* | 7.1 rc1 | Vulnerable | Linux |
| cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* | 7.1 rc2 | Vulnerable | Linux |
- cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions 2.6.20 to before 6.1.175; 6.2 to before 6.6.140; 6.7 to before 6.12.88; 6.13 to before 6.18.30; 6.19 to before 7.0.7 Vulnerable ·Linux
- cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* Versions 7.1 rc1 Vulnerable ·Linux
- cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* Versions 7.1 rc2 Vulnerable ·Linux
Remediation
- Fix · CNA Linux (Linux) Fixed in 5.15.222, 6.1.175, 6.6.140, 6.12.88, 6.18.30, 7.0.7, 7.1
Red Hat 11 advisories
- RHSA-2026:49033 Released 2026-07-31 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux BaseOS AUS (v.8.6) bpftool-4.18.0-372.204.1.el8_6, kernel-4.18.0-372.204.1.el8_6, kernel-abi-stablelists-4.18.0-372.204.1.el8_6 +14
- Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.6) bpftool-4.18.0-372.204.1.el8_6, kernel-4.18.0-372.204.1.el8_6, kernel-abi-stablelists-4.18.0-372.204.1.el8_6 +14
- RHSA-2026:41229 Released 2026-07-17 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux BaseOS E4S (v.8.8) bpftool-4.18.0-477.154.1.el8_8, kernel-4.18.0-477.154.1.el8_8, kernel-abi-stablelists-4.18.0-477.154.1.el8_8 +14
- Red Hat Enterprise Linux BaseOS TUS (v.8.8) bpftool-4.18.0-477.154.1.el8_8, kernel-4.18.0-477.154.1.el8_8, kernel-abi-stablelists-4.18.0-477.154.1.el8_8 +14
- RHSA-2026:40082 Released 2026-07-15 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux AppStream E4S (v.9.2) kernel-64k-debug-devel-5.14.0-284.181.1.el9_2, kernel-64k-debug-devel-matched-5.14.0-284.181.1.el9_2, kernel-64k-devel-5.14.0-284.181.1.el9_2 +10
- Red Hat Enterprise Linux BaseOS E4S (v.9.2) bpftool-7.0.0-284.181.1.el9_2, kernel-5.14.0-284.181.1.el9_2, kernel-64k-5.14.0-284.181.1.el9_2 +29
Show 8 more Red Hat advisories
- RHSA-2026:39983 Released 2026-07-15 · Red Hat rating Moderatekernel-rt security update
- Red Hat Enterprise Linux Real Time E4S (v.9.2) kernel-rt-5.14.0-284.181.1.rt14.466.el9_2, kernel-rt-core-5.14.0-284.181.1.rt14.466.el9_2, kernel-rt-debug-5.14.0-284.181.1.rt14.466.el9_2 +9
- Red Hat Enterprise Linux Real Time for NFV E4S (v.9.2) kernel-rt-5.14.0-284.181.1.rt14.466.el9_2, kernel-rt-core-5.14.0-284.181.1.rt14.466.el9_2, kernel-rt-debug-5.14.0-284.181.1.rt14.466.el9_2 +11
- RHSA-2026:39371 Released 2026-07-14 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux AppStream EUS (v. 10.0) kernel-64k-debug-devel-6.12.0-55.88.1.el10_0, kernel-64k-debug-devel-matched-6.12.0-55.88.1.el10_0, kernel-64k-devel-6.12.0-55.88.1.el10_0 +12
- Red Hat Enterprise Linux BaseOS EUS (v. 10.0) kernel-6.12.0-55.88.1.el10_0, kernel-64k-6.12.0-55.88.1.el10_0, kernel-64k-core-6.12.0-55.88.1.el10_0 +28
- Red Hat Enterprise Linux CodeReady Linux Builder EUS (v. 10.0) kernel-tools-libs-devel-6.12.0-55.88.1.el10_0, libperf-6.12.0-55.88.1.el10_0
- Red Hat Enterprise Linux Real Time EUS (v. 10.0) kernel-rt-6.12.0-55.88.1.el10_0, kernel-rt-64k-6.12.0-55.88.1.el10_0, kernel-rt-64k-core-6.12.0-55.88.1.el10_0 +21
- Red Hat Enterprise Linux Real Time for NFV EUS (v. 10.0) kernel-rt-6.12.0-55.88.1.el10_0, kernel-rt-core-6.12.0-55.88.1.el10_0, kernel-rt-debug-6.12.0-55.88.1.el10_0 +11
- RHSA-2026:39083 Released 2026-07-14 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux BaseOS (v. 8) bpftool-4.18.0-553.143.1.el8_10, kernel-4.18.0-553.143.1.el8_10, kernel-abi-stablelists-4.18.0-553.143.1.el8_10 +19
- Red Hat Enterprise Linux CRB (v. 8) kernel-tools-libs-devel-4.18.0-553.143.1.el8_10
- RHSA-2026:39082 Released 2026-07-14 · Red Hat rating Importantkernel-rt security update
- Red Hat Enterprise Linux NFV (v. 8) kernel-rt-4.18.0-553.143.1.rt7.484.el8_10, kernel-rt-core-4.18.0-553.143.1.rt7.484.el8_10, kernel-rt-debug-4.18.0-553.143.1.rt7.484.el8_10 +9
- Red Hat Enterprise Linux RT (v. 8) kernel-rt-4.18.0-553.143.1.rt7.484.el8_10, kernel-rt-core-4.18.0-553.143.1.rt7.484.el8_10, kernel-rt-debug-4.18.0-553.143.1.rt7.484.el8_10 +7
- RHSA-2026:38902 Released 2026-07-13 · Red Hat rating Importantkernel security, bug fix, and enhancement update
- Red Hat CodeReady Linux Builder EUS (v.9.6) kernel-tools-libs-devel-5.14.0-570.127.1.el9_6, libperf-5.14.0-570.127.1.el9_6
- Red Hat Enterprise Linux AppStream EUS (v.9.6) kernel-64k-debug-devel-5.14.0-570.127.1.el9_6, kernel-64k-debug-devel-matched-5.14.0-570.127.1.el9_6, kernel-64k-devel-5.14.0-570.127.1.el9_6 +12
- Red Hat Enterprise Linux BaseOS EUS (v.9.6) kernel-5.14.0-570.127.1.el9_6, kernel-64k-5.14.0-570.127.1.el9_6, kernel-64k-core-5.14.0-570.127.1.el9_6 +28
- Red Hat Enterprise Linux Real Time EUS (v.9.6) kernel-rt-5.14.0-570.127.1.el9_6, kernel-rt-64k-5.14.0-570.127.1.el9_6, kernel-rt-64k-core-5.14.0-570.127.1.el9_6 +21
- Red Hat Enterprise Linux Real Time for NFV EUS (v.9.6) kernel-rt-5.14.0-570.127.1.el9_6, kernel-rt-core-5.14.0-570.127.1.el9_6, kernel-rt-debug-5.14.0-570.127.1.el9_6 +11
- RHSA-2026:37729 Released 2026-07-10 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux AppStream E4S (v.9.4) kernel-64k-debug-devel-5.14.0-427.137.1.el9_4, kernel-64k-debug-devel-matched-5.14.0-427.137.1.el9_4, kernel-64k-devel-5.14.0-427.137.1.el9_4 +11
- Red Hat Enterprise Linux BaseOS E4S (v.9.4) bpftool-7.3.0-427.137.1.el9_4, kernel-5.14.0-427.137.1.el9_4, kernel-64k-5.14.0-427.137.1.el9_4 +29
- Red Hat Enterprise Linux Real Time E4S (v.9.4) kernel-rt-5.14.0-427.137.1.el9_4, kernel-rt-core-5.14.0-427.137.1.el9_4, kernel-rt-debug-5.14.0-427.137.1.el9_4 +9
- Red Hat Enterprise Linux Real Time for NFV E4S (v.9.4) kernel-rt-5.14.0-427.137.1.el9_4, kernel-rt-core-5.14.0-427.137.1.el9_4, kernel-rt-debug-5.14.0-427.137.1.el9_4 +11
- RHSA-2026:36957 Released 2026-07-09 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux AppStream (v. 9) kernel-64k-debug-devel-5.14.0-687.24.1.el9_8, kernel-64k-debug-devel-matched-5.14.0-687.24.1.el9_8, kernel-64k-devel-5.14.0-687.24.1.el9_8 +12
- Red Hat Enterprise Linux BaseOS (v. 9) kernel-5.14.0-687.24.1.el9_8, kernel-64k-5.14.0-687.24.1.el9_8, kernel-64k-core-5.14.0-687.24.1.el9_8 +28
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) kernel-tools-libs-devel-5.14.0-687.24.1.el9_8, libperf-5.14.0-687.24.1.el9_8
- Red Hat Enterprise Linux Real Time (v. 9) kernel-rt-5.14.0-687.24.1.el9_8, kernel-rt-64k-5.14.0-687.24.1.el9_8, kernel-rt-64k-core-5.14.0-687.24.1.el9_8 +21
- Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt-5.14.0-687.24.1.el9_8, kernel-rt-core-5.14.0-687.24.1.el9_8, kernel-rt-debug-5.14.0-687.24.1.el9_8 +9
- RHSA-2026:36956 Released 2026-07-09 · Red Hat rating Importantkernel security update
- Red Hat Enterprise Linux AppStream (v. 10) kernel-64k-debug-devel-6.12.0-211.32.1.el10_2, kernel-64k-debug-devel-matched-6.12.0-211.32.1.el10_2, kernel-64k-devel-6.12.0-211.32.1.el10_2 +12
- Red Hat Enterprise Linux BaseOS (v. 10) kernel-6.12.0-211.32.1.el10_2, kernel-64k-6.12.0-211.32.1.el10_2, kernel-64k-core-6.12.0-211.32.1.el10_2 +29
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) kernel-tools-libs-devel-6.12.0-211.32.1.el10_2, libperf-6.12.0-211.32.1.el10_2
- Red Hat Enterprise Linux Real Time (v. 10) kernel-rt-6.12.0-211.32.1.el10_2, kernel-rt-64k-6.12.0-211.32.1.el10_2, kernel-rt-64k-core-6.12.0-211.32.1.el10_2 +21
- Red Hat Enterprise Linux Real Time for NFV (v. 10) kernel-rt-6.12.0-211.32.1.el10_2, kernel-rt-core-6.12.0-211.32.1.el10_2, kernel-rt-debug-6.12.0-211.32.1.el10_2 +9
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat CodeReady Linux Builder EUS (v.9.6) | Fixed | RHSA-2026:38902 |
| Red Hat Enterprise Linux AppStream (v. 10) | Fixed | RHSA-2026:36956 |
| Red Hat Enterprise Linux AppStream (v. 9) | Fixed | RHSA-2026:36957 |
| Red Hat Enterprise Linux AppStream E4S (v.9.2) | Fixed | RHSA-2026:40082 |
| Red Hat Enterprise Linux AppStream E4S (v.9.4) | Fixed | RHSA-2026:37729 |
| Red Hat Enterprise Linux AppStream EUS (v. 10.0) | Fixed | RHSA-2026:39371 |
| Red Hat Enterprise Linux AppStream EUS (v.9.6) | Fixed | RHSA-2026:38902 |
| Red Hat Enterprise Linux BaseOS (v. 10) | Fixed | RHSA-2026:36956 |
| Red Hat Enterprise Linux BaseOS (v. 8) | Fixed | RHSA-2026:39083 |
| Red Hat Enterprise Linux BaseOS (v. 9) | Fixed | RHSA-2026:36957 |
| Red Hat Enterprise Linux BaseOS AUS (v.8.6) | Fixed | RHSA-2026:49033 |
| Red Hat Enterprise Linux BaseOS E4S (v.8.8) | Fixed | RHSA-2026:41229 |
| Red Hat Enterprise Linux BaseOS E4S (v.9.2) | Fixed | RHSA-2026:40082 |
| Red Hat Enterprise Linux BaseOS E4S (v.9.4) | Fixed | RHSA-2026:37729 |
| Red Hat Enterprise Linux BaseOS EUS (v. 10.0) | Fixed | RHSA-2026:39371 |
| Red Hat Enterprise Linux BaseOS EUS (v.9.6) | Fixed | RHSA-2026:38902 |
| Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.6) | Fixed | RHSA-2026:49033 |
| Red Hat Enterprise Linux BaseOS TUS (v.8.8) | Fixed | RHSA-2026:41229 |
| Red Hat Enterprise Linux CRB (v. 8) | Fixed | RHSA-2026:39083 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) | Fixed | RHSA-2026:36956 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) | Fixed | RHSA-2026:36957 |
| Red Hat Enterprise Linux CodeReady Linux Builder EUS (v. 10.0) | Fixed | RHSA-2026:39371 |
| Red Hat Enterprise Linux NFV (v. 8) | Fixed | RHSA-2026:39082 |
| Red Hat Enterprise Linux RT (v. 8) | Fixed | RHSA-2026:39082 |
| Red Hat Enterprise Linux Real Time (v. 10) | Fixed | RHSA-2026:36956 |
| Red Hat Enterprise Linux Real Time (v. 9) | Fixed | RHSA-2026:36957 |
| Red Hat Enterprise Linux Real Time E4S (v.9.2) | Fixed | RHSA-2026:39983 |
| Red Hat Enterprise Linux Real Time E4S (v.9.4) | Fixed | RHSA-2026:37729 |
| Red Hat Enterprise Linux Real Time EUS (v. 10.0) | Fixed | RHSA-2026:39371 |
| Red Hat Enterprise Linux Real Time EUS (v.9.6) | Fixed | RHSA-2026:38902 |
| Red Hat Enterprise Linux Real Time for NFV (v. 10) | Fixed | RHSA-2026:36956 |
| Red Hat Enterprise Linux Real Time for NFV (v. 9) | Fixed | RHSA-2026:36957 |
| Red Hat Enterprise Linux Real Time for NFV E4S (v.9.2) | Fixed | RHSA-2026:39983 |
| Red Hat Enterprise Linux Real Time for NFV E4S (v.9.4) | Fixed | RHSA-2026:37729 |
| Red Hat Enterprise Linux Real Time for NFV EUS (v. 10.0) | Fixed | RHSA-2026:39371 |
| Red Hat Enterprise Linux Real Time for NFV EUS (v.9.6) | Fixed | RHSA-2026:38902 |
Not affected: 2 products
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
Timeline
- 2026-10-02 Threatist record created from CVE-2026-46113
- 2026-10-03 Alias added: GHSA-gcf3-9g28-gv44
- 2026-10-03 Fix available: Linux/[email protected], Linux/Linux@9597963a8ca16259d194a1d9950d7bd22a10ab2f · CNA
- 2026-10-03 1 new reference · CNA
- 2026-10-16 CISA SSVC decision points changed
- 2026-10-19 Weakness changed · CISA ADP
References
Patch 6
- https://git.kernel.org/stable/c/e9d4ea13aa2b6400bb10ec64b370ba3dadcd22f0
- https://git.kernel.org/stable/c/488e386484ec8c0e558be6e156edf34ed9f4d5c8
- https://git.kernel.org/stable/c/06c19c967b845b63172601fe459667d973b7e6b7
- https://git.kernel.org/stable/c/738ec97b1855df6c08fe2369f798fa0b972e556b
- https://git.kernel.org/stable/c/14d1e55dfd2cf4711bff164a6aaaddb783552134
- https://git.kernel.org/stable/c/0cb2af2ea66ad8ff195c156ea690f11216285bdf
More Linux Kernel vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
- TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
Sources
- CVE-2026-46113 · CVE Program
- CVE-2026-46113 · NVD
- FIRST EPSS
- GHSA-gcf3-9g28-gv44 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-46113 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences