🇰🇷 한글 설명
Linux 커널의 KVM s390 아키텍처에서 keyop 작업 시 mmu_lock을 사용하여 gmap->asce를 읽는 과정에 결함이 발견되었습니다. 이로 인해 gmap_set_limit() 함수가 실행되는 동안 stale(오래된) ASCE 값을 사용할 수 있으며, 이는 메모리 오염을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 규칙이 바뀌는 도중에 옛날 규칙을 참조하여 데이터를 잘못 처리하는 문제입니다. 이로 인해 시스템의 메모리가 망가질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: s390: keyop: use mmu_lock to read gmap->asce
Every other dat_* consumer in this file (kvm_s390_get_skeys,
set_skeys, get_cmma_bits, set_cmma_bits, MEM_CLR_CMMA,
kvm_s390_fixup_prefix, kvm_test_age_gfn, kvm_age_gfn) reads
kvm->arch.gmap->asce *inside* the mmu_lock read-side. keyop is the only
outlier.
gmap->asce is mutated under write_lock(mmu_lock) by gmap_set_limit()
and keyop might use a stale asce value for walking as KVM_S390_KEYOP
and KVM_S390_VM_MEM_LIMIT_SIZE can run concurrently. This can result
in memory corruption.
📍 영향받는 시스템
Linux kernel (KVM s390 architecture)
⚔️ 공격 벡터
KVM_S390_KEYOP과 KVM_S390_VM_MEM_LIMIT_SIZE가 동시에 실행되는 경합 조건(Race Condition)을 이용한 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.