CVE-2026-89809 in Linux
Sumário
de VulDB • 16/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
drm/amdkfd: corrige o escopo da desreferência de mqd_mgr em pqm_debugfs_mqds
A leitura de /sys/kernel/debug/kfd/mqds enquanto um processo mantém uma fila KFD ativa aciona uma desreferência de ponteiro NULL porque o loop for que chama mqd_mgr->debugfs_show_mqd() está incorretamente posicionado fora do bloco if (pqn->q) que inicializa mqd_mgr.
A lista de filas pode conter entradas onde pqn->q é NULL (filhas do kernel onde apenas pqn->kq é válido). No código original:
if (pqn->q) {
... mqd_mgr = q->device->dqm->mqd_mgrs[mqd_type];
size = mqd_mgr->mqd_stride(...); }
for (xcc = 0; xcc < num_xccs; xcc++) { // ERRADO: fora do bloco if
mqd = q->mqd + size * xcc; r = mqd_mgr->debugfs_show_mqd(m, mqd); }
Ao iterar sobre um nó de fila onde pqn->q é NULL: 1. O bloco if (pqn->q) é ignorado 2. mqd_mgr permanece não inicializado (NULL devido à declaração) 3. O loop for executa mesmo assim 4. mqd_mgr->debugfs_show_mqd(m, mqd) desreferencia um ponteiro NULL
A falha se manifesta como:
BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor instruction fetch in kernel mode RIP: 0010:0x0 Call Trace: pqm_debugfs_mqds+0x10c/0x1d0 [amdgpu]
kfd_debugfs_mqds_by_process+0x9b/0x110 [amdgpu]
seq_read_iter+0x132/0x4b0 ...
Correção movendo o loop for para dentro do bloco if (pqn->q), de modo que mqd_mgr e variáveis relacionadas sejam usadas apenas quando devidamente inicializadas.
(cherry picked from commit 8bfe29d5c798940f797aa24135d2734c3ffce9de)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.