CVE-2026-89800 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
리눅스 커널에서 다음 취약점이 해결되었습니다:
drm/nouveau/uvmm: OP_UNMAP_SPARSE를 언와인딩할 때 더티 플래그(clear) 해제
성공적인 OP_UNMAP_SPARSE는 nouveau_uvma_region_dirty()를 통해 해당 영역을 더티로 표시하고, teardown(해제 작업)을 nouveau_uvmm_bind_job_cleanup()으로 지연시킵니다. 그러나 이 과정에서는 uvmm->region_mt에서 해당 영역이 제거되지 않습니다.
만약 이후의 연산(job 내 다른 op)이 실패하면, 언와인딩 경로(registry의 더티 플래그를 설정하는 곳은 하나지만 해제하는 곳이 없음)에서 reg->dirty가 결코 clearing(해제)되지 않고 op->reg = NULL로 설정됩니다. 이로 인해 cleanup 단계에서 teardown 작업이 건너뛰어집니다. 그 결과 해당 영역은 더티 상태가 유지된 채 트리에 남아 있으며, 완료 신호(completion signal)는 절대 전달되지 않습니다. 이후에 동일한 범위에 대한 바인드(bind) 시도는 영구적으로 실패합니다(더티 체크로 인해 -ENOENT 또는 -EINVAL 오류 발생, 또는 bind_validate_region() 내의 kill할 수 없는 wait_for_completion() 대기). 이러한 현상은 uvmm의 전체 수명 동안 지속됩니다.
sparse unmap을 되돌리는 언와인딩 과정에서 reg->dirty를 clearing하여, 해당 영역이 발견되었던 상태로 복원합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.