🇰🇷 한글 설명
Linux 커널의 iommu/vt-d 구성 요소에서 I/O 페이지 폴트 보고 경로와 장치 해제 경로 간의 동기화 메커니즘이 부족하여 발생합니다. 장치가 rbtree에서 검색된 후 해제될 경우 Use-After-Free 취약점이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 사용 중인 줄 알고 작업을 하려는데, 그 사이에 부품이 갑자기 제거되어 시스템이 혼란에 빠지는 문제입니다. 이로 인해 시스템이 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Use device rbtree in iopf reporting path
The existing I/O page fault handler currently locates the PCI device by
calling pci_get_domain_bus_and_slot(). This function searches the list
of all PCI devices until the desired device is found. To improve lookup
efficiency, replace it with device_rbtree_find() to search the device
within the probed device rbtree.
The I/O page fault is initiated by the device, which does not have any
synchronization mechanism with the software to ensure that the device
stays in the probed device tree. Theoretically, a device could be released
by the IOMMU subsystem after device_rbtree_find() and before
iopf_get_dev_fault_param(), which would cause a use-after-free problem.
Add a mutex to synchronize the I/O page fault reporting path and the IOMMU
release device path. This lock doesn't introduce any performance overhead,
as the conflict between I/O page fault reporting and device releasing is
very rare.
📍 영향받는 시스템
Linux kernel (iommu/vt-d 관련 모듈 사용 시스템)
⚔️ 공격 벡터
특정 하드웨어 장치의 I/O 페이지 폴트를 유도하여 메모리 관리 오류를 일으킴
🛡️ 대응 방법
I/O 페이지 폴트 보고 경로와 장치 해제 경로에 뮤텍스(Mutex) 동기화가 적용된 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인