CVE-2026-80633 in Linux
요약
\~에 의해 VulDB • 2026. 08. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
iommufd: release 경로에서 dma_buf_unpin() 호출 전에 dma_resv 잠금을 획득하십시오
dma_buf_unpin()은 호출자가 exporter의 dma_resv 잠금을 보유해야 합니다:
void dma_buf_unpin(struct dma_buf_attachment *attach) {
... dma_resv_assert_held(dmabuf->resv); ... }
iopt_release_pages()는 해당 잠금 없이 dma_buf_unpin()을 호출하므로, DMABUF 기반 iopt_pages의 마지막 참조를 해제하는 모든 iommufd_ioas_destroy()/iommufd_ioas_unmap() 실행 시 WARN이 발생합니다. 이는 tools/testing/selftests/iommu/iommufd 테스트 도구 실행 중에 발생했습니다:
WARNING: drivers/dma-buf/dma-buf.c:1137 at dma_buf_unpin+0x62/0x70 RIP: 0010:dma_buf_unpin+0x62/0x70 Call Trace: <TASK> dma_buf_unpin+0x62/0x70 iopt_release_pages+0xe4/0x190 iopt_unmap_iova_range+0x1c7/0x290 iopt_unmap_all+0x1a/0x30 iommufd_ioas_destroy+0x1d/0x50 iommufd_fops_release+0x93/0x150 __fput+0xfc/0x2c0 __x64_sys_close+0x3d/0x80 do_syscall_64+0x65/0x180 </TASK>
iopt_release_pages()에서 dma_buf_unpin() 주변에 dma_resv 잠금을 추가하여, iopt_map_dmabuf()의 관례와 일치시킵니다. dma_buf_detach()는 내부적으로 reservation lock을 획득하므로, 해당 잠금 영역 외부에 남아 있어야 합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.