🇰🇷 한글 설명
Linux 커널의 KVM 구성 요소에서 kvm_io_bus_get_dev() 함수가 장치를 반환할 때 잠금(locking) 책임을 호출자에게 넘기지 않아 발생하는 생명주기 문제입니다. 이로 인해 호출자가 장치 유형을 확인하기 전에 SRCU 잠금이 해제되어 해당 장치가 사라질 수 있는 취약점이 존재했습니다.
💡 쉬운 설명
컴퓨터의 가상화 기능을 담당하는 프로그램에서 특정 장치를 사용하는 도중, 장치가 갑자기 사라져서 시스템 오류를 일으킬 수 있는 문제입니다. 이를 방지하기 위해 장치를 사용하는 동안 안전하게 붙잡아두는 규칙을 수정했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers
kvm_io_bus_get_dev() returns a device that is only matched by the
address, and nothing else. This can cause a lifetime issue if
the matched device is not the expected type, as by the time
the caller can introspect the object, it might be gone (the srcu
lock having been dropped).
Given that there is only a single user of this helper, the simplest
option is to move the locking responsibility to the caller, which
can keep the srcu lock held for as long as it wants.
Note that this aligns with other kvm_io_bus*() helpers, which
already require the srcu lock to be held by the callers.
📍 영향받는 시스템
Linux Kernel (KVM 모듈이 포함된 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 조건에서 KVM 장치 인터페이스를 조작하여 커널 메모리 오류 또는 시스템 불안정을 유도할 수 있음
🛡️ 대응 방법
KVM 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인