CVE-2026-63807 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 19.

리눅스 커널에서 다음 취약점이 해결되었습니다:

KVM: x86/mmu: 최대 매핑 레벨을 확인하기 전에 hugepage가 memslot 내에 있는지 확인하십시오.

그림자 MMU(shadow MMU)에서 hugepage를 복구할 때, 그림자 페이지의 gfn에 기반한 최대 매핑 레벨을 쿼리하기 *전* 에 해당 그림자 페이지의 기본 gfn(base gfn)이 대상 memslot 내에 실제로 포함되어 있는지를 확인하십시오. gfn의 유효성을 사전에 검사하지 않으면, 게스트가 memslot 경계를 "아래로" 확장하는 hugepage 매핑(PTEs에서)을 생성할 경우 memslot의 lpage_info에 대한 바깥 영역(out-of-bounds) 접근이 발생할 수 있습니다(일반적으로 호스트 #PF로 나타남. 이는 lpage_info가 vmalloc'd 되었기 때문임).

게스트를 위한 메모리 faulting 중 게스트 매핑 크기가 KVM의 (현재) 최대 매핑 크기보다 큰 경우, KVM은 "직접(direct)" 그림자 페이지를 생성합니다(여기서 직접이란 gPTEs를 그림자로 삼을 것이 없으며, 따라서 대상 gfn이 그림자 페이지의 기본 gfn에 기반한 직접 계산임을 의미함). hugepage 복구 흐름은 이러한 직접 그림자 페이지들을 찾습니다. 이는 더티 로깅(dirty logging) 생성 시 게스트 > 호스트 매핑 크기 사례에서 4KiB 매핑을 강제하기 위함입니다. 4KiB 제한이 해제되면 KVM은 그림자 페이지를 hugepage로 대체할 수 있습니다.

그러나 게스트 hugepage가 덮는 메모리 범위가 memslot의 경계를 초과하여 KVM이 원래 게스트보다 작은 매핑을 사용한 경우, KVM은 직접 그림자 페이지를 memslot 외부에 있는 gfn과 연결하게 됩니다. 리프 매핑(lf mapping)에 추가된 rmap 엔트리는 정확하며 범위 내에 있지만, 리프 SPTE(parent shadow page)의 부모 그림자 페이지의 gfn은 범위를 벗어납니다.

BUG: unable to handle page fault for address: ffffc90000806ffc #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 100000067 P4D 100000067 PUD 1002a7067 PMD 10612f067 PTE 0 Oops: Oops: 0000 [#1] SMP
CPU: 13 UID: 1000 PID: 757 Comm: mmu_stress_test Not tainted 7.1.0-rc1-48ce1e26eace-x86_pir_to_irr_comments-vm #341 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:kvm_mmu_max_mapping_level+0x79/0x2b0 [kvm]
Call Trace: <TASK> kvm_mmu_recover_huge_pages+0x21b/0x320 [kvm]
kvm_set_memslot+0x1ee/0x590 [kvm]
kvm_set_memory_region.part.0+0x3

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-380144

EPSS

0.00000

활동

중간

출처

Do you need the next level of professionalism?

Upgrade your account now!