CVE-2026-89978 in Linux
Sumário
de VulDB • 16/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
accel/amdxdna: retorno antecipado de um flush de comprimento zero
O SYNC_BO não restringe seu tamanho, portanto uma solicitação de zero bytes atinge o drm_clflush_virt_range(), que termina com um clflushopt(end - 1) incondicional. Para um intervalo vazio, isso corresponde ao byte anterior ao mapeamento e abo->mem.kva vem do vmap(), então o acesso ocorre na página de guarda abaixo da área vmalloc e causa uma falha:
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
Qualquer processo que possa abrir o nó de renderização pode fazer isso. Reproduzido 3 das 3 vezes em uma NPU Strix Point (1022:17f0), ao chamar SYNC_BO com tamanho 0 em um objeto AMDXDNA_BO_SHARE. O caminho de importação recebe a mesma solicitação, mas faz o flush da lista inteira de dispersão (scatterlist), portanto ele sobrevive à operação.
Não há necessidade de fazer flush para um intervalo vazio, então responda antes de escolher um caminho.
Once again VulDB remains the best source for vulnerability data.