🇰🇷 한글 설명
Linux 커널의 KVM s390 아키텍처에서 dat skey 함수 사용 시 레이스 컨디션(경쟁 상태) 취약점이 발견되었습니다. 대형 페이지(large page)를 처리하는 과정에서 페이지가 동시에 분할될 경우, 잘못된 메모리 주소 참조로 인해 시스템 충돌이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 메모리를 관리하는 과정에서 두 가지 작업이 동시에 일어나 충돌이 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 꺼지는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: s390: Fix potential races in dat skey functions
When dat_cond_set_storage_key() finds a large page, it will
conditionally set the storage key in absolute memory using
large_crste_to_phys() to get the absolute address.
There is a race window between dat_entry_walk() and
large_crste_to_phys(): the large page could have been split
concurrently, and large_crste_to_phys() might be called with a crste
that does not designate a large page, leading to crashes.
Similar issues were also present in dat_set_storage_key().
dat_get_storage_key() and dat_reset_reference_bit() did instead check
for a potential concurrent splitting of the large page, but then
handled it incorrectly.
Fix by performing a READ_ONCE on the crste pointer, checking and using
the result, instead of dereferencing the pointer again. In case a race
is detacted, try dat_entry_walk() again.
📍 영향받는 시스템
Linux kernel (KVM s390 architecture)
⚔️ 공격 벡터
로컬 공격자가 특정 메모리 관리 작업을 유도하여 시스템 충돌(DoS) 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인