🇰🇷 한글 설명
Linux 커널의 iommufd 구성 요소에서 unmap 작업 중 내부 액세스에 대한 잠금(locking)을 적절히 해제하지 않는 취약점이 발견되었습니다. 내부 액세스 여부를 확인하기 전에 객체를 먼저 잠그기 때문에, 참조 카운트가 제대로 감소하지 않아 객체 참조 누수가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리 관리 기능에서 사용이 끝난 데이터의 흔적을 지울 때, 실수로 데이터의 사용권을 계속 붙잡고 있는 버그입니다. 이로 인해 시스템의 메모리 자원이 조금씩 낭비되어 결국 성능 저하나 시스템 불안정을 초래할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommufd: Avoid locking internal accesses during unmap
iommufd_access_notify_unmap() skips internal accesses because they do
not have an external unmap callback to invoke.
However, the current test calls iommufd_lock_obj() before checking
whether the access is internal. If iommufd_lock_obj() succeeds, the loop
then sees the internal access and continues, bypassing the matching
iommufd_put_object() used by the normal unmap path. This leaks the
object reference taken by iommufd_lock_obj().
Check for internal accesses first so skipped entries are never locked.
📍 영향받는 시스템
Linux Kernel (iommufd 관련 모듈이 포함된 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 iommufd API를 반복적으로 호출하여 메모리 참조 누수를 유도함
🛡️ 대응 방법
iommufd 내부 액세스 확인 로직을 수정하여 잠금(lock) 전에 내부 액세스 여부를 먼저 검사하도록 커널을 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.