🇰🇷 한글 설명
Linux 커널의 KVM arm64 구현에서 pkvm_vcpu_init_sve() 함수가 SVE 벡터 길이를 검증할 때 상한선만 제한하는 결함이 발견되었습니다. 이로 인해 유효하지 않은 벡터 길이가 전달될 경우 EL2 단계에서 치명적인 오류(WARN_ON)가 발생하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
컴퓨터의 가상화 기능을 사용할 때, 잘못된 설정값이 입력되면 시스템의 핵심 관리 영역에서 오류가 발생해 컴퓨터가 멈출 수 있는 문제입니다. 이를 방지하기 위해 입력값이 올바른지 미리 확인하는 절차가 추가되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve()
pkvm_vcpu_init_sve() clamps only the upper bound of the host-provided
sve_max_vl, so an invalid vector length reaches sve_state_size_from_vl()
and the WARN_ON() there, which is fatal at EL2. The existing
!sve_state_size test rejects such a length, but only after the macro has
run.
Check sve_vl_valid() before deriving the state size. A valid length
cannot yield a zero size, so the !sve_state_size test goes with it.
📍 영향받는 시스템
Linux kernel (arm64 architecture, KVM/pKVM 사용 환경)
⚔️ 공격 벡터
가상 머신(VM) 설정 시 조작된 SVE 벡터 길이를 전달하여 호스트 커널의 EL2 단계에서 패닉 유도
🛡️ 대응 방법
SVE 벡터 길이를 검증하는 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인