CVE-2026-68102 in Linux
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
drm/amdgpu: aperture 매핑 누수 수정
amdgpu_pci_remove()는 드라이버 종료 루틴을 호출하기 전에 drm_dev_unplug()를 호출합니다. 이로 인해 amdgpu_ttm_fini() 내의 drm_dev_enter()가 항상 false를 반환하므로, 정상적인 드라이버 언로드 시 iounmap(aper_base_kaddr)이 실행되지 않아 x86 PAT 인터벌 트리에 고아 엔트리가 남게 됩니다.
connected_to_cpu 하드웨어에서는 aperture가 ioremap_cache()를 통해 write-back(WB)으로 매핑됩니다. 다시 로드할 때 IP 발견 프로세스는 동일한 범위에 대해 memremap(..., MEMREMAP_WC)을 호출합니다. WC와 WB 간의 충돌로 인해 다음 오류가 발생합니다:
ioremap error for 0x..., requested 0x1, got 0x0 amdgpu: discovery failed: -2
drm_dev_enter() 상태에 관계없이 정리가 보장되도록 devres 관리 매핑으로 전환하여 수정합니다:
- connected_to_cpu 경로: devm_memremap(MEMREMAP_WB) 사용. IORESOURCE_SYSTEM_RAM 범위의 경우 try_ram_remap() 단축 경로를 통해 기존 커널 직접 맵에서 __va(offset)를 반환합니다. 새로운 ioremap VA나 PAT 엔트리가 생성되지 않으므로 고아 항목이 발생하지 않습니다.
- dGPU 경로: devm_ioremap_wc()는 device_del() 시 정리를 보장하기 위해 iounmap()을 devres 액션으로 등록합니다.
또한 매핑이 이제 devres 소유가 되었으므로 amdgpu_device_unmap_mmio()에서 iounmap(aper_base_kaddr)를 제거합니다.
v2: 중복된 x86_64 가드 제거 (Lijo)
(commit d871e99879cb5fd1fa798b006b4888887e63a17a에서 cherry picked됨)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.