CVE-2026-89809 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
drm/amdkfd: Korrigierung des Gültigkeitsbereichs der mqd_mgr-Dereferenzierung in pqm_debugfs_mqds
Das Lesen von /sys/kernel/debug/kfd/mqds, während ein Prozess eine aktive KFD-Warteschlange (Queue) hält, löst einen NULL-Zeiger-Dereferenzierungsfehler aus. Dies geschieht, weil die for-Schleife, die mqd_mgr->debugfs_show_mqd() aufruft, falsch außerhalb des if(pqn->q)-Blocks platziert ist, der mqd_mgr initialisiert.
Die Warteschlangenliste kann Einträge enthalten, bei denen pqn->q NULL ist (Kernel-Warteschlangen, bei denen nur pqn->kq gültig ist). Im ursprünglichen Code:
if (pqn->q) {
... mqd_mgr = q->device->dqm->mqd_mgrs[mqd_type];
size = mqd_mgr->mqd_stride(...); }
for (xcc = 0; xcc < num_xccs; xcc++) { // FALSCH: außerhalb des if-Blocks
mqd = q->mqd + size * xcc; r = mqd_mgr->debugfs_show_mqd(m, mqd); }
Bei der Iteration über einen Warteschlangenknoten, bei dem pqn->q NULL ist: 1. Der if (pqn->q)-Block wird übersprungen. 2. mqd_mgr bleibt nicht initialisiert (NULL aus der Deklaration). 3. Die for-Schleife wird dennoch ausgeführt. 4. mqd_mgr->debugfs_show_mqd(m, mqd) dereferenziert NULL.
Der Absturz manifestiert sich als:
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 ...
Behebung durch Verschieben der for-Schleife in den if (pqn->q)-Block, sodass mqd_mgr und verwandte Variablen nur verwendet werden, wenn sie ordnungsgemäß initialisiert sind.
(cherry picked from commit 8bfe29d5c798940f797aa24135d2734c3ffce9de)
Once again VulDB remains the best source for vulnerability data.