🇰🇷 한글 설명
Linux 커널의 KVM 가상화 기능에서 vmx.c 파일의 prepare_vmcs02 함수가 L0 vmcs02 컨트롤을 제대로 검증하지 않는 문제입니다. L1 하이퍼바이저가 "use TPR shadow" 컨트롤을 생략한 경우, L2 게스트 운영체제의 권한 있는 사용자가 하드웨어 CR8 레지스터에 무제한 접근할 수 있습니다.
💡 쉬운 설명
가상머신 내부의 게스트 운영체제가 호스트의 보호된 특수 레지스터에 접근할 수 있는 보안 검증 우회 문제입니다. 권한 있는 게스트 사용자가 이를 악용하여 시스템 권한을 상승시킬 수 있습니다.
🇺🇸 원문 (English)
The prepare_vmcs02 function in arch/x86/kvm/vmx.c in the Linux kernel through 4.13.3 does not ensure that the "CR8-load exiting" and "CR8-store exiting" L0 vmcs02 controls exist in cases where L1 omits the "use TPR shadow" vmcs12 control, which allows KVM L2 guest OS users to obtain read and write access to the hardware CR8 register.
📍 영향받는 시스템
Linux kernel 버전 4.13.3 이하에서 KVM 모듈이 활성화된 x86/x64 시스템
⚔️ 공격 벡터
KVM L2 게스트에서 실행되는 권한 있는 프로세스가 CR8 레지스터에 직접 읽기/쓰기 액세스
🛡️ 대응 방법
Linux kernel을 4.13.4 이상으로 업데이트 또는 KVM 모듈 비활성화
🔧 검증 코드
"Vulnerable"이 출력되면 영향받는 커널 버전, "Patched"이면 패치된 버전입니다.
uname -r | awk -F'[.\-]' '{v=$1*1000+$2*100+$3; if(v<=4133) print "Vulnerable"; else print "Patched"}'