🇰🇷 한글 설명
Linux 커널의 KVM arm64 구현에서 vncr 번역 실패 시 SEA(SError)를 적절히 주입하지 못하는 취약점이 발견되었습니다. kvm_translate_vncr()가 -EFAULT를 반환할 때 s1_walk_result가 항상 중단(abort)을 의미한다고 가정하는 논리적 오류를 수정하여, 메모리 슬롯 외부의 GFN 접근 시 발생하는 지연된 실패 상황을 올바르게 처리하도록 개선되었습니다.
💡 쉬운 설명
가상 머신을 구동하는 리눅스 커널에서 메모리 주소를 변환할 때 오류가 발생하면 시스템이 이를 제대로 인지하지 못할 수 있는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 보안상 취약점이 생길 수 있어 이를 바로잡는 패치가 적용되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: nv: Inject SEA if kvm_translate_vncr() can't resolve PFN
kvm_handle_vncr_abort() assumes that s1_walk_result conveys an abort
when kvm_translate_vncr() returns -EFAULT. This is not always the case
as it's possible to encounter 'late' failures on the output of S1
translation, e.g. a GFN outside of the memslots.
Fix it by preparing an external abort before returning from
kvm_translate_vncr(). Get rid of the BUG_ON() in the fault injection
path while at it.
📍 영향받는 시스템
ARM64 아키텍처를 사용하는 Linux 커널 (KVM 모듈 포함)
⚔️ 공격 벡터
가상 머신(Guest) 내에서 조작된 메모리 주소(GFN)에 접근하여 호스트 커널의 메모리 번역 로직을 트리거함
🛡️ 대응 방법
KVM의 vncr 번역 및 SEA 주입 로직이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인