CVE-2026-53359
KVM: x86: 예상치 못한 역할로 인한 shadow paging use-after-free 수정
- 게시됨
- 2026. 7. 4.
- 업데이트됨
- 2026. 8. 17.
- CNA 할당 중
- Linux
- 증거 관찰됨
- 2026. 8. 4.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H낮음 · 다음 30일
- 백분위수
- 59.6%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Linux 커널에서 다음 취약점이 해결되었습니다: KVM: x86: 예상치 못한 role(역할)로 인한 섀도 페이징 use-after-free 수정 Commit 0cb2af2ea66ad ("KVM: x86: 예상치 못한 GFN으로 인한 섀도 페이징 use-after-free 수정")은 저장된 GFN과 계산된 GFN 사이의 섀도 페이징 불일치를 수정했습니다. 이 버그는 게스트 외부에서 PDE 매핑을 변경한 다음 memslot을 삭제함으로써 트리거될 수 있었습니다. rmap_remove() 호출은 PDE 변경 후 생성된 항목을 놓칠 수 있었는데, 그 이유는 리프(leaf) SPTE의 GFN이 struct kvm_mmu_page의 GFN과 일치하지 않았기 때문입니다. 그러나 수정된 PDE가 비-리프(non-leaf) 페이지를 가리키는 경우에도 유사한 구멍이 남아 있습니다. 이 경우 gfn을 일치시킬 수는 있지만 role이 일치하지 않습니다. 원래의 큰 2MB 페이지는 direct=1인 kvm_mmu_page를 생성하는 반면, 새로운 4KB 페이지는 direct=0인 kvm_mmu_page가 필요합니다. 그러나 kvm_mmu_get_child_sp()는 role을 비교하지 않으므로 해당 페이지를 재사용합니다. 다음 단계는 새 경로에 리프(4KB) SPTE를 설치하는 것이며, 이는 워크(walk)에서 확인된 gfn 아래에 rmap 항목을 기록합니다. 그러나 해당 child가 제거(zap)될 때 그 상위(parent) kvm_mmu_page는 direct=1이고 kvm_mmu_page_get_gfn()은 4KB 페이지의 gfn을 sp->shadowed_translation[] (또는 이전 커널에서는 sp->gfns[])을 사용하는 대신 sp->gfn + index로 계산합니다. 따라서 기록된 항목을 제거하지 못합니다. memslot이 삭제되면 섀도 페이지는 해제되지만 rmap 항목은 이미 수정된 시나리오에서와 같이 살아남습니다. 이후 해당 gfn을 탐색하는 코드(더티 로깅, MMU notifier 무효화 등)는 해제된 페이지에 있는 sptep를 역참조하여 use-after-free를 유발합니다.
소스
4CVE-2026-53359
Linux 커널 업그레이드 가이드 - CVE-2026-53359 수정
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.