🇰🇷 한글 설명
리눅스 커널의 KVM 구성 요소에서 gfn_to_pfn_cache 잠금 초기화 과정 중 레이스 컨디션(경쟁 상태) 취약점이 발견되었습니다. 특정 ioctl 호출과 초기화 함수가 동시에 실행될 경우 잠금 메커니즘이 손상되어 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터의 가상 머신을 관리하는 핵심 기능에서 두 가지 작업이 동시에 일어나면서 충돌이 발생하는 문제입니다. 이 충돌로 인해 시스템의 중요한 잠금 장치가 고장 나 데이터가 꼬이거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: Initialize gfn_to_pfn_cache locks in dedicated helper
Move the gfn_to_pfn_cache lock initialization to another helper and
call the new helper during VM/vCPU creation. There are race
conditions possible due to kvm_gfn_to_pfn_cache_init()'s
ability to re-initialize the cache's locks.
For example: a race between ioctl(KVM_XEN_HVM_EVTCHN_SEND) and
kvm_gfn_to_pfn_cache_init() leads to a corrupted shinfo gpc lock.
(thread 1) | (thread 2)
|
kvm_xen_set_evtchn_fast |
read_lock_irqsave(&gpc->lock, ...) |
| kvm_gfn_to_pfn_cache_init
| rwlock_init(&gpc->lock)
read_unlock_irqrestore(&gpc->lock, ...) |
Rename "cache_init" and "cache_destroy" to activate+deactivate to
avoid implying that the cache really is destroyed/freed.
Note, there more races in the newly named kvm_gpc_activate() that will
be addressed separately.
[sean: call out that this is a bug fix]
📍 영향받는 시스템
KVM(Kernel-based Virtual Machine)이 포함된 리눅스 커널 버전
⚔️ 공격 벡터
특정 ioctl(KVM_XEN_HVM_EVTCHN_SEND) 호출과 캐시 초기화 함수 간의 타이밍을 이용한 레이스 컨디션 공격
🛡️ 대응 방법
KVM 잠금 초기화 로직이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.