🇰🇷 한글 설명
리눅스 커널의 iommufd/viommu 구성 요소에서 vdevice_size 검증 오류 발생 시 igroup 락을 해제하지 않는 취약점이 발견되었습니다. 이로 인해 오류 경로에서 뮤텍스 잠금이 해제되지 않아, 해당 그룹의 다음 vDEVICE 작업 시 데드락(교착 상태)이 발생할 수 있습니다.
💡 쉬운 설명
시스템 내부에서 장치를 설정하다가 오류가 발생했을 때, 사용하던 잠금 장치를 제대로 풀어주지 않는 버그입니다. 이 때문에 다음에 같은 장치를 사용하려고 하면 시스템이 멈춰버리는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommufd/viommu: Release the igroup lock on the vdevice_size error path
iommufd_vdevice_alloc_ioctl() takes idev->igroup->lock, then validates the
driver's vdevice_size against the core structure size with a WARN_ON_ONCE.
On failure that guard jumps to out_put_idev, below out_unlock_igroup, so it
skips the mutex_unlock(), leaving the igroup lock held and deadlocking the
next vDEVICE operation on that group.
Jump to out_unlock_igroup instead.
📍 영향받는 시스템
iommufd 및 viommu 모듈을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 ioctl 호출을 통해 vdevice_size 검증 오류를 유도하여 시스템 데드락 유발
🛡️ 대응 방법
iommufd/viommu의 오류 처리 경로를 수정하여 mutex_unlock()이 반드시 호출되도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.