🇰🇷 한글 설명
리눅스 커널의 nouveau 드라이버에서 대형 폴리오(folio) 사용 시 DMA 언맵(unmap) 크기가 일치하지 않는 취약점이 발견되었습니다. 이로 인해 IOMMU/IOVA 매핑의 일부가 해제되지 않고 누수되는 문제가 발생합니다.
💡 쉬운 설명
컴퓨터 메모리를 정리할 때 일부를 제대로 지우지 못해 메모리 자원이 낭비되는 문제입니다. 이 현상이 반복되면 시스템의 자원이 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau/dmem: fix mismatched DMA unmap size for large folios
Device-private THP migration maps migration buffers with page_size()
and records that length in dma_info->size. For a compound folio
page_size() is PAGE_SIZE << order, but two teardown sites still pass a
literal PAGE_SIZE to dma_unmap_page():
- nouveau_dmem_migrate_to_ram() on the success path, and
- nouveau_dmem_migrate_copy_one() on the copy-error path.
For an order > 0 folio this unmaps less than was mapped, leaking the
remainder of the IOMMU/IOVA mapping. The other unmap sites, in
nouveau_dmem_migrate_chunk() and nouveau_dmem_evict_chunk(), already
use the saved size; use it here too.
📍 영향받는 시스템
Linux kernel (nouveau DRM driver 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 특정 메모리 관리 작업을 유도하여 IOMMU/IOVA 매핑 누수를 유발할 수 있음
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.