Skip to content

[rlc-10/6.12.0-211.39.1.el10_2] KVM: x86: Check for invalid/obsolete root *after* making MMU pages available - #1508

Merged
bmastbergen merged 1 commit into
rlc-10/6.12.0-211.39.1.el10_2from
{bmastbergen}_rlc-10/6.12.0-211.39.1.el10_2
Aug 4, 2026
Merged

[rlc-10/6.12.0-211.39.1.el10_2] KVM: x86: Check for invalid/obsolete root *after* making MMU pages available#1508
bmastbergen merged 1 commit into
rlc-10/6.12.0-211.39.1.el10_2from
{bmastbergen}_rlc-10/6.12.0-211.39.1.el10_2

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

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

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 41m 18s 42m 6s
aarch64 25m 3s 25m 54s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 429 63 rlc-10/6.12.0-211.39.1.el10_2 ✅ No regressions
aarch64 376 59 rlc-10/6.12.0-211.39.1.el10_2 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1478 80 rlc-10/6.12.0-211.39.1.el10_2 ✅ No regressions
aarch64 1451 81 rlc-10/6.12.0-211.39.1.el10_2 ✅ 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: 30919801947

@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

@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 12:55
…ailable

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}_rlc-10/6.12.0-211.39.1.el10_2 branch from 2dcfa86 to 162dd14 Compare August 4, 2026 14:35
@bmastbergen
bmastbergen merged commit 5bef1cb into rlc-10/6.12.0-211.39.1.el10_2 Aug 4, 2026
5 checks passed
@bmastbergen
bmastbergen deleted the {bmastbergen}_rlc-10/6.12.0-211.39.1.el10_2 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