以下是攻擊步驟的簡化說明:
direct=1 的影子頁。direct=0。kvm_mmu_get_child_sp() 尋找可重用的影子頁時,它找到了現有的影子頁,因為來賓頁框號碼相符。然而,它沒有比對 direct 角色。於是,原先角色為 direct=1 的影子頁被錯誤地用於現在需要 direct=0 的場景中 。sptep(影子頁表項指標)在進行反向映射遍歷時(如髒頁記錄或 MMU 通知器失效處理),仍然被參考,從而導致釋放後使用的情況 。CVE-2026-53359 的後果極為嚴重,尤其是在多租戶雲端環境中。
/dev/kvm 設備的權限為全局可讀寫,一個無特權的本地使用者可將此漏洞作為一個可靠的本地權限提升途徑 。Linux 核心社群在發現此缺陷後迅速行動。一個修復程式已提交至主線核心,並反向移植到穩定核心,所有修補均於 2026 年 7 月 4 日 發布 。
81ccda30b4e83d8f5cc4fd50503c44e3a33abfeb 及其反向移植)強化了 kvm_mmu_get_child_sp() 中的驗證邏輯。現在,它要求 同時 比對來賓頁框號碼 和 MMU 角色,才能重用影子頁,從而阻止導致釋放後使用的角色錯配問題 。雖然安裝修補程式是唯一的根本解決方案,但管理員可以實施臨時緩解措施來減少攻擊面:
/dev/kvm 存取:為防止無特權的本地權限提升,請限制對 KVM 設備的存取。使用 chmod 660 /dev/kvm 修改權限,並僅將受信任的使用者加入 kvm 群組 。