CVE-2026-89809 in Linux
Résumé
par VulDB • 16/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
drm/amdkfd : correction de la portée du déréférencement de mqd_mgr dans pqm_debugfs_mqds
La lecture de /sys/kernel/debug/kfd/mqds alors qu'un processus détient une file d'attente KFD active déclenche un déréférencement de pointeur NULL car la boucle for qui appelle mqd_mgr->debugfs_show_mqd() est incorrectement placée en dehors du bloc if (pqn->q) qui initialise mqd_mgr.
La liste des files d'attente peut contenir des entrées où pqn->q est NULL (files d'attente noyau où seul pqn->kq est valide). Dans le code 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++) { // MAUVAIS : en dehors du bloc if
mqd = q->mqd + size * xcc; r = mqd_mgr->debugfs_show_mqd(m, mqd); }
Lors de l'itération sur un nœud de file d'attente où pqn->q est NULL : 1. Le bloc if (pqn->q) est ignoré 2. mqd_mgr reste non initialisé (NULL lors de la déclaration) 3. La boucle for s'exécute quand même 4. mqd_mgr->debugfs_show_mqd(m, mqd) déréférence NULL
Le plantage se manifeste par :
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 ...
Correction en déplaçant la boucle for à l'intérieur du bloc if (pqn->q), afin que mqd_mgr et les variables associées ne soient utilisées que lorsqu'elles sont correctement initialisées.
(cherry picked from commit 8bfe29d5c798940f797aa24135d2734c3ffce9de)
If you want to get best quality of vulnerability data, you may have to visit VulDB.