Skip to content

[ciqlts9_6] KVM: x86: Check for invalid/obsolete root *after* making MMU pages available - #1507

Merged
bmastbergen merged 1 commit into
ciqlts9_6from
{bmastbergen}_ciqlts9_6
Aug 4, 2026
Merged

[ciqlts9_6] KVM: x86: Check for invalid/obsolete root *after* making MMU pages available#1507
bmastbergen merged 1 commit into
ciqlts9_6from
{bmastbergen}_ciqlts9_6

Conversation

@ciq-kernel-automation

@ciq-kernel-automation ciq-kernel-automation Bot commented Aug 3, 2026

Copy link
Copy Markdown

Summary

This PR has been automatically created after successful completion of all CI stages.

Commit Message(s)

KVM: x86: Check for invalid/obsolete root *after* making MMU pages available

jira VULN-195551
cve CVE-2026-64561
commit-author Sean Christopherson <seanjc@google.com>
commit 2abd5287f08319fa35764566b15c6e22cb1068db

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 30m 49s 32m 2s
aarch64 18m 35s 19m 19s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 205 44 ciqlts9_6 ✅ No regressions
aarch64 153 46 ciqlts9_6 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1453 82 ciqlts9_6 ✅ No regressions
aarch64 1426 83 ciqlts9_6 ✅ No regressions

aarch64 newly passing:

  • af_alg04 (FAIL -> PASS)
  • fcntl14 (FAIL -> PASS)
  • fcntl14_64 (FAIL -> PASS)
  • fork14 (FAIL -> PASS)
  • mmap16 (FAIL -> PASS)

🤖 This PR was automatically generated by GitHub Actions
Run ID: 30919642336

@ciq-kernel-automation ciq-kernel-automation Bot added the created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI) label Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/30859665662

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit ff64ace1503 (KVM: x86: Check for invalid/obsolete root *after* making MMU pages available) → upstream 2abd5287f083
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/arch/x86/kvm/mmu/paging_tmpl.h
+++ b/arch/x86/kvm/mmu/paging_tmpl.h
@@ -832,4 +832,5 @@
 	}
+#endif
 
 	r = RET_PF_RETRY;
 	write_lock(&vcpu->kvm->mmu_lock);

This is an automated interdiff check for backported commits.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/30859665662

@PlaidCat PlaidCat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@PlaidCat
PlaidCat requested a review from a team August 4, 2026 13:03
…ailable

jira VULN-195551
cve CVE-2026-64561
commit-author Sean Christopherson <seanjc@google.com>
commit 2abd528

Check for a "stale" page fault, i.e. for an invalid and/or obsolete root,
after making MMU pages available for the shadow MMU.  If reclaiming shadow
pages zaps an in-use root, i.e. marks it invalid, then KVM will attempt to
map memory into an invalid root.  On its own, populating an invalid root is
"fine", but because child shadow pages inherit their parent's role, any
children created during the map/fetch will be created as invalid pages,
thus violating KVM's invariant that invalid pages are never on the list of
active MMU pages.

Note, the underlying flaw has existed since KVM first started tracking
invalid roots in 2008 (commit 2e53d63, "KVM: MMU: ignore zapped root
pagetables"), but the true badness only came along in 2020 (Linux 5.9)
with the invariant that invalid shadow pages can't be on the list of
active pages.

Note #2, inheriting role.invalid when creating child shadow pages is also
far from ideal; that flaw will be addressed separately.

	Reported-by: Hyunwoo Kim <imv4bel@gmail.com>
Fixes: f95eec9 ("KVM: x86/mmu: Don't put invalid SPs back on the list of active pages")
	Cc: stable@vger.kernel.org
	Signed-off-by: Sean Christopherson <seanjc@google.com>
	Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 2abd528)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
@bmastbergen
bmastbergen force-pushed the {bmastbergen}_ciqlts9_6 branch from ff64ace to b0653e8 Compare August 4, 2026 14:31
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/30920179005

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit b0653e87f52 (KVM: x86: Check for invalid/obsolete root *after* making MMU pages available) → upstream 2abd5287f083
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/arch/x86/kvm/mmu/paging_tmpl.h
+++ b/arch/x86/kvm/mmu/paging_tmpl.h
@@ -832,4 +832,5 @@
 	}
+#endif
 
 	r = RET_PF_RETRY;
 	write_lock(&vcpu->kvm->mmu_lock);

This is an automated interdiff check for backported commits.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/30920179005

@bmastbergen
bmastbergen merged commit 0df72fa into ciqlts9_6 Aug 4, 2026
6 of 7 checks passed
@bmastbergen
bmastbergen deleted the {bmastbergen}_ciqlts9_6 branch August 4, 2026 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI)

Development

Successfully merging this pull request may close these issues.

3 participants