🇰🇷 한글 설명
Linux 커널의 KVM에서 중첩 가상화(nVMX) 사용 시, 잘못된 게스트 상태로 인해 VM-Enter가 실패할 경우 vmcs12 페이지를 해제하지 못하는 취약점이 발견되었습니다. 이로 인해 L1 하이퍼바이저가 VMLAUNCH 또는 VMRESUME를 재시도할 경우 고정된 페이지나 매핑이 누수될 수 있습니다.
💡 쉬운 설명
가상 컴퓨터 안에서 또 다른 가상 컴퓨터를 실행할 때, 오류가 발생해도 메모리 자원을 제대로 돌려주지 않아 메모리가 계속 쌓이는 문제가 있습니다. 이 문제가 지속되면 시스템의 메모리 자원이 낭비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: nVMX: Put vmcs12 pages if nested VM-Enter fails due to invalid guest state
Put all vmcs12 pages if KVM synthesizes a nested VM-Exit due to invalid
guest while emulating VMLAUNCH or VMRESUME. The invalid guest state path
doesn't use nested_vmx_vmexit() as that API is intended to be used if and
only if L2 is active, and the open coded equivalent neglects to put the
vmcs12 pages. Failure to put the vmcs12 pages leaks any pinned pages
(and/or mappings) if L1 retries VMLAUNCH/VMRESUME.
Note, the !from_vmenter scenario doesn't suffer the same problem, as
vmx_get_nested_state_pages() only gets/pins/maps the vmcs12 pages if L2 is
active, i.e. if a "full" VM-Exit is guaranteed before KVM will retry
getting vmcs12 pages.
📍 영향받는 시스템
Linux Kernel (KVM nVMX 기능이 활성화된 환경)
⚔️ 공격 벡터
잘못된 게스트 상태를 유도하여 중첩 VM-Enter 실패를 발생시킴으로써 메모리 누수 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인