CVE-2026-53359
Im Linux-Kernel wurde die folgende Schwachstelle behoben: KVM: x86: Behebung eines Use-after-free beim Shadow Paging aufgrund einer unerwarteten Rolle Commit 0cb2af2ea66ad („KVM: x86: Fix shadow paging use-after-free due to unexpected GFN“) behob eine Inkonsistenz beim Shadow Paging zwischen gespeicherten und berechneten GFNs; der Fehler konnte ausgelöst werden, indem eine PDE-Zuordnung von außerhalb des Gasts geändert und anschließend ein Memslot gelöscht wurde. Der Aufruf von rmap_remove() würde Einträge übersehen, die nach der PDE-Änderung erstellt wurden, weil die GFN des Blatt-SPTE nicht mit der GFN der struct kvm_mmu_page übereinstimmt. Eine ähnliche Lücke bleibt jedoch bestehen, wenn die geänderte PDE auf eine Nicht-Blatt-Seite zeigt. In diesem Fall kann die GFN zur Übereinstimmung gebracht werden, aber die Rolle stimmt nicht überein: Die ursprüngliche große 2MB-Seite erstellt eine kvm_mmu_page mit direct=1, während die neue 4KB-Seite eine kvm_mmu_page mit direct=0 benötigt. kvm_mmu_get_child_sp() vergleicht die Rolle jedoch nicht und verwendet daher die Seite erneut. Der nächste Schritt besteht darin, ein Blatt-SPTE (4KB) auf dem neuen Pfad zu installieren, das einen rmap-Eintrag unter der durch den Walk aufgelösten GFN aufzeichnet. Wenn dieses Child jedoch entfernt wird, hat seine übergeordnete kvm_mmu_page direct=1 und kvm_mmu_page_get_gfn() berechnet die GFN für die 4KB-Seite als sp->gfn + index, anstatt sp->shadowed_translation[] (oder sp->gfns[] in älteren Kerneln) zu verwenden. Daher schlägt das Entfernen des aufgezeichneten Eintrags fehl. Wenn der Memslot entfernt wird, wird die Shadow-Seite freigegeben, aber der rmap- Eintrag bleibt bestehen, wie in dem bereits behobenen Szenario. Code, der später diese GFN durchläuft (Dirty Logging, MMU-Notifier-Invalidierung usw.), dereferenziert ein sptep, das in der freigegebenen Seite liegt, und verursacht dadurch den Use-after-free.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HBetroffene Produkte
| Hersteller | Produkt | Versionen |
|---|---|---|
| linux | linux kernel | < 6.1.177 |
Verwandte Artikel
This product uses the NVD API but is not endorsed or certified by the NVD.
Die technische Beschreibung ist unsere Übersetzung des englischen NVD-Originaltexts.
