🇰🇷 한글 설명
Linux 커널의 KVM nSVM 구현에서 중첩 VMEXIT 발생 시 호스트 CR3 복구에 실패할 경우, 오류를 무시하고 손상된 상태로 실행을 지속하여 시스템이 불안정해지는 취약점입니다. 이 문제는 시스템을 안전하게 종료하는 대신 삼중 오류(Triple Fault)를 발생시켜 하드웨어 수준의 셧다운을 유도하도록 수정되었습니다.
💡 쉬운 설명
가상 머신을 사용하는 환경에서 특정 오류가 발생했을 때, 컴퓨터가 비정상적인 상태로 계속 작동하려다 시스템이 완전히 멈추거나 꺼질 수 있는 문제입니다. 이번 수정은 오류 발생 시 시스템을 더 안전하고 깔끔하게 종료하도록 개선한 것입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: nSVM: Triple fault if restore host CR3 fails on nested #VMEXIT
If loading L1's CR3 fails on a nested #VMEXIT, nested_svm_vmexit()
returns an error code that is ignored by most callers, and continues to
run L1 with corrupted state. A sane recovery is not possible in this
case, and HW behavior is to cause a shutdown. Inject a triple fault
instead, and do not return early from nested_svm_vmexit(). Continue
cleaning up the vCPU state (e.g. clear pending exceptions), to handle
the failure as gracefully as possible.
From the APM:
Upon #VMEXIT, the processor performs the following actions in order to
return to the host execution context:
...
if (illegal host state loaded, or exception while loading host state)
shutdown
else
execute first host instruction following the VMRUN
Remove the return value of nested_svm_vmexit(), which is mostly
unchecked anyway.
📍 영향받는 시스템
Linux Kernel (KVM nSVM 기능을 사용하는 환경)
⚔️ 공격 벡터
중첩 가상화(Nested Virtualization) 환경에서 특정 조건의 VMEXIT를 유도하여 시스템 셧다운 유발
🛡️ 대응 방법
KVM 관련 보안 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인