CVE-2026-99082
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
KVM: x86: Użyj aktywnych gniazd pamięci dla pamięci podręcznej MMIO na każdy procesor wirtualny
KVM oznacza pamięć podręczną MMIO dla każdego vCPU generacją slotu memslot, dzięki czemu a
aktualizacja gniazda memslot unieważnia buforowane informacje MMIO. Zarówno wypełnienie, jak i
ścieżki sprawdzania używają kvm_memslots(), która bezwarunkowo wybiera adres
spacja 0, nawet jeśli vCPU działa w SMM i używa przestrzeni adresowej 1.
Zatwierdź 56f17dd3fbc4 („kvm: x86: napraw błąd przestarzałej pamięci podręcznej mmio”) dodał
wygenerowanie memslot do klucza pamięci podręcznej, tak że aktualizacja memslot nie mogła
pozostaw nieaktualny wpis ważny. Po zatwierdzeniu 699023e23965 („KVM: x86: dodaj SMM
do roli MMU, obsługa przestrzeni adresowej SMRAM”) dodano przestrzeń adresową SMM,
te pomocniki nie zostały przekonwertowane do korzystania z aktywnych gniazd pamięci.
W związku z tym aktualizacja slotów memslotów SMM może pozostawić wpis ze starego
Przestrzeń adresowa SMM najwyraźniej jest ważna po powrocie vCPU do normy
przestrzeń adresowa. Gość może wówczas spowodować jednocześnie dostęp do ważnej pamięci RAM
GFN ma zostać zwrócony do przestrzeni użytkownika jako KVM_EXIT_MMIO.
Zakończenie tego wyjścia poprzez przestrzeń adresową RAM VMM powoduje zapisanie kopii zapasowej
stronę bez przechodzenia przez ścieżkę śledzenia zapisu KVM. Jeśli strona obsługuje a
zagnieżdżonej tabeli EPT, KVM może nadal korzystać z pochodzących z niej tłumaczeń w tle
stara zawartość. WARN_ON_ONCE() w kvm_mmu_write_protect_fault()
przechwytuje tę nieprawidłową kombinację pamięci podręcznej i gniazda memslot.
Użyj aktywnych slotów memslotów vCPU podczas buforowania i sprawdzania poprawności wpisu.
Generacje Memslot są unikalne w przestrzeni adresowej, więc generacja
rozróżnia także widoki normalne i SMM. To pasuje do MMIO SPTE
pamięć podręczna, która już używa kvm_vcpu_memslots().
W niezałatanym jądrze z linii głównej test regresji, który wypełnia plik
pamięci podręcznej w SMM i aktualizuje tylko gniazda memów SMM, nie udaje się zamierzonego zapisu w pamięci RAM
i wyzwala ostrzeżenie kvm_mmu_write_protect_fault(). Wraz z tą zmianą
ten sam test kończy zapis w pamięci RAM bez ostrzeżenia. Test x86/smm_,
autotesty set_memory_region_test i memslot_modification_stress_test również
przejść.
>_ Referencje
- https://git.kernel.org/stable/c/2566780c684c9c21241d409d790087c73070f312
- https://git.kernel.org/stable/c/7fd4e64f4bbc8c35ae8f0d2a1fb5b77a76d5b4fd
- https://git.kernel.org/stable/c/a63f79d9da9468952396af73e1e53330845cf876
- https://git.kernel.org/stable/c/b3e6212dea2e4328a841ceb37f377583176dc735
- https://git.kernel.org/stable/c/e792a9ace39d2812a5b342a1987186c7bc653204
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org