CVE-2026-99082 in LinuxИнформация

Сводка

по VulDB • 24.10.2026

В ядре Linux была устранена следующая уязвимость:

KVM: x86: Использование активных memslots для кэша MMIO на уровне каждого vCPU

KVM помечает кэш MMIO, привязанный к каждому vCPU, номером поколения (generation) memslot, чтобы обновление memslot приводило к инвалидации закэшированной информации о MMIO. Как путь заполнения, так и пути валидации используют функцию kvm_memslots(), которая безоговорочно выбирает адресное пространство 0, даже когда vCPU работает в режиме SMM и использует адресное пространство 1.

Коммит 56f17dd3fbc4 («kvm: x86: fix stale mmio cache bug») добавил номер поколения memslot в ключ кэша, чтобы обновление memslot не оставляло устаревшую запись действительной. Когда коммит 699023e23965 («KVM: x86: add SMM to the MMU role, support SMRAM address space») добавил адресное пространство SMM, эти вспомогательные функции не были преобразованы для использования активных memslots.

В результате обновление memslot'ов в SMM может оставить запись из старого адресного пространства SMM кажущейся действительной после того, как vCPU вернется в обычное адресное пространство. Гость (guest) затем может вызвать доступ к реальной оперативной памяти (RAM), находящейся по тому же GFN, который будет возвращен пользовательскому пространству как KVM_EXIT_MMIO.

Завершение этого выхода через адресное пространство RAM VMM записывает фоновую страницу без прохождения через путь отслеживания записи (write-tracking path) в KVM. Если эта страница является частью таблицы EPT для вложенной виртуализации, KVM может продолжать использовать теневые трансляции, полученные из старого содержимого. Вызов WARN_ON_ONCE() в функции kvm_mmu_write_protect_fault() перехватывает эту некорректную комбинацию кэша и memslot.

При кешировании и проверке записи следует использовать активные memslots vCPU. Номера поколений memslot уникальны для всех адресных пространств, поэтому номер поколения также различает обычные виды и виды SMM. Это соответствует кэшу MMIO SPTE, который уже использует kvm_vcpu_memslots().

На неподпатченном текущем ядре mainline регрессионный тест, заполняющий кэш в режиме SMM и обновляющий только memslot'ы SMM, не выполняет ожидаемую запись в RAM и вызывает предупреждение в kvm_mmu_write_protect_fault(). С этим изменением тот же тест завершает запись в RAM без вывода предупреждений. Самопроверки (selftests) x86/smm_test, set_memory_region_test и memslot_modification_stress_test также проходят успешно.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425817

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!