CVE-2026-89978 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
리눅스 커널에서 다음 취약점이 해결되었습니다:
accel/amdxdna: 길이가 0인 플러시 요청 시 조기 반환
SYNC_BO는 크기를 제한하지 않으므로, 0바이트에 대한 요청이 drm_clflush_virt_range()로 전달되어 최종적으로 조건 없는 clflushopt(end - 1)를 호출합니다. 빈 범위의 경우 이는 매핑 바로 앞의 바이트가 되며, abo->mem.kva는 vmap()에서 제공되므로 접근은 vmalloc 영역 아래의 가드 페이지에 미쳐 예외(faults)가 발생합니다:
BUG: unable to handle page fault for address: ffffd16fbbc70fff #PF: supervisor read access in kernel mode Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 7 UID: 1000 Comm: sync_bo_probe RIP: 0010:drm_clflush_virt_range+0x3c/0x70 Call Trace: amdxdna_drm_sync_bo_ioctl+0x124/0x430 [amdxdna]
drm_ioctl+0x301/0x4c0 __x64_sys_ioctl+0x115/0x2f0 do_syscall_64+0xa6/0x3d0
렌더 노드를 열 수 있는 모든 프로세스가 이를 수행할 수 있습니다. Strix Point NPU(1022:17f0)에서 AMDXDNA_BO_SHARE 객체에 대해 크기가 0인 SYNC_BO를 호출하여 3회 중 3회에서 재현되었습니다. import arm 경로도 동일한 요청을 처리하지만 전체 scatterlist를 플러시하므로 예외가 발생하지 않습니다.
빈 범위에 대해서는 플러시가 필요 없으므로, 경로를 선택하기 전에 조기에 반환합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.