🔍 CVE-2026-99082

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 KVM의 x86 vCPU MMIO 캐시가 SMM 주소 공간에서 채워질 때 항상 주소 공간 0의 memslot 세대를 확인하는 문제가 수정되었습니다. 이로 인해 SMM memslot 업데이트 후 오래된 캐시 항목이 유효한 것으로 잘못 판단될 수 있었습니다. 수정은 vCPU의 활성 memslot을 캐시 채우기와 검증에 사용하도록 변경합니다.

💡 쉬운 설명

가상 머신의 특수 실행 모드(SMM)에서 사용하는 메모리 정보가 일반 모드의 정보와 뒤섞일 수 있는 결함입니다. 이로 인해 게스트가 일반 메모리 영역을 잘못된 경로로 접근하게 될 수 있었고, 이 문제는 패치로 해결되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Use active memslots for the per-vCPU MMIO cache KVM tags the per-vCPU MMIO cache with a memslot generation so that a memslot update invalidates cached MMIO information. Both the fill and validation paths use kvm_memslots(), which unconditionally selects address space 0, even when the vCPU is running in SMM and using address space 1. Commit 56f17dd3fbc4 ("kvm: x86: fix stale mmio cache bug") added the memslot generation to the cache key so that a memslot update could not leave a stale entry valid. When commit 699023e23965 ("KVM: x86: add SMM to the MMU role, support SMRAM address space") added the SMM address space, these helpers were not converted to use the active memslots. Consequently, an update to the SMM memslots can leave an entry from the old SMM address space apparently valid after the vCPU returns to the normal address space. A guest can then cause an access to valid RAM at the same GFN to be returned to userspace as KVM_EXIT_MMIO. Completing that exit through the VMM's RAM address space writes the backing page without going through KVM's write-tracking path. If the page backs a nested EPT table, KVM can continue using shadow translations derived from the old contents. The WARN_ON_ONCE() in kvm_mmu_write_protect_fault() catches this invalid cache and memslot combination. Use the vCPU's active memslots when caching and validating the entry. Memslot generations are unique across address spaces, so the generation also distinguishes the normal and SMM views. This matches the MMIO SPTE cache, which already uses kvm_vcpu_memslots(). On an unpatched current-mainline kernel, a regression test that fills the cache in SMM and updates only the SMM memslots fails the intended RAM write and triggers the kvm_mmu_write_protect_fault() warning. With this change, the same test completes the RAM write without a warning. The x86/smm_test, set_memory_region_test, and memslot_modification_stress_test selftests also pass.

📍 영향받는 시스템

패치 이전의 Linux 커널 (x86 KVM 하이퍼바이저 사용 환경, 정확한 영향 버전은 제공된 정보로는 확인 불가)

⚔️ 공격 벡터

게스트 VM 내부에서 SMM 모드 memslot을 갱신하여 오래된 MMIO 캐시 항목을 악용하고, 중첩 EPT 페이지 테이블이 있는 RAM 영역에 대한 쓰기를 우회하는 방식으로 추정됩니다.

🛡️ 대응 방법

해당 수정이 포함된 최신 Linux 커널로 업데이트하고 배포판의 보안 패치를 적용하십시오.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 및 커널 changelog에서 해당 커밋(KVM: x86: Use active memslots for the per-vCPU MMIO cache)이 포함되었는지 확인하며, 포함되지 않은 이전 버전이면 취약할 수 있습니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel