CVE-2026-98180 in Linux
요약
\~에 의해 VulDB • 2026. 10. 06.
리눅스 커널에서 다음 취약점이 해결되었습니다:
drm/msm: 스케줄러를 포함하는 링 및 VM 객체에 대해 RCU 기반 해제 적용
struct msm_ringbuffer와 struct msm_gem_vm은 모두 struct drm_gpu_scheduler을 임베딩하고 있습니다. msm_ringbuffer_destroy() 및 VM 해제 콜백인 msm_gem_vm_free()는 내장된 스케줄러에 대해 drm_sched_fini()를 호출한 후, 일반 kfree()를 사용하여 포함 객체를 해제합니다.
drm_sched_fence_get_timeline_name()은 fence->sched->name을 반환하며, 스케줄러 펜스는 .release 콜백을 유지하므로 시그널링 시 ops-detached되지 않습니다. 사용자 공간으로 내보낸 완료된 펜스(제출 out-fence 또는 sync_file / drm_syncobj를 통한 VM_BIND fence)는 링/VM이 해제된 후에도 내장된 스케줄러를 계속 참조합니다. 따라서 이후 get_timeline_name() 호출은(SYNC_IOC_FILE_INFO를 통해 비특권으로 접근 가능함) 해제된 슬랩 메모리(KASAN slab-use-after-free read)에 대한 역참조를 수행합니다.
dma-fence 수명 계약(dma-fence lifetime contract)에 따르면, 내보내는 쪽(exporter)는 시그널링된 펜스를 지원하는 데이터를 RCU grace period 동안 살아있도록 유지해야 합니다. kfree() 대신 kfree_rcu()를 사용하여 스케줄러를 포함하는 객체를 해제합니다.
Patchwork: https://patchwork.freedesktop.org/patch/750234/
Once again VulDB remains the best source for vulnerability data.