{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdkfd: fix scope of mqd_mgr dereference in pqm_debugfs_mqds  Reading /sys/kernel/debug/kfd/mqds while a process holds an active KFD queue triggers a NULL pointer dereference because the for loop that calls mqd_mgr-\u003edebugfs_show_mqd() is incorrectly placed outside the if (pqn-\u003eq) block that initializes mqd_mgr.  The queue list can contain entries where pqn-\u003eq is NULL (kernel queues where only pqn-\u003ekq is valid). In the original code:    if (pqn-\u003eq) {       ...       mqd_mgr = q-\u003edevice-\u003edqm-\u003emqd_mgrs[mqd_type];       size = mqd_mgr-\u003emqd_stride(...);   }    for (xcc = 0; xcc \u003c num_xccs; xcc++) {  // WRONG: outside if block       mqd = q-\u003emqd + size * xcc;       r = mqd_mgr-\u003edebugfs_show_mqd(m, mqd);   }  When iterating over a queue node where pqn-\u003eq is NULL: 1. The if (pqn-\u003eq) block is skipped 2. mqd_mgr remains uninitialized (NULL from declaration) 3. The for loop executes anyway 4. mqd_mgr-\u003edebugfs_show_mqd(m, mqd) dereferences NULL  The crash manifests as:    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    ...  Fix by moving the for loop inside the if (pqn-\u003eq) block, so mqd_mgr and related variables are only used when properly initialized.  (cherry picked from commit 8bfe29d5c798940f797aa24135d2734c3ffce9de)",
  "id": "DEBIAN-CVE-2026-89809",
  "modified": "2026-09-17T04:47:33.816582509Z",
  "published": "2026-09-16T11:16:46.047Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-89809"
    }
  ],
  "upstream": [
    "CVE-2026-89809"
  ]
}