CVE-2026-89809 in Linux
要約
〜によって VulDB • 2026年09月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/amdkfd: pqm_debugfs_mqdsにおけるmqd_mgrのデリファレンスのスコープを修正する
プロセスがアクティブなKFDキューを保持している間に /sys/kernel/debug/kfd/mqds を読み込むと、mqd_mgrを初期化する if (pqn->q) ブロックの外側に配置されている for ループにより、NULLポインタのデリファレンスがトリガーされ、クラッシュします。
キューリストには pqn->q が NULL であるエントリ(pq n->k のみが有効なカーネルキュー)が含まれる場合があります。元のコードでは:
```c if (pqn->q) {
... mqd_mgr = q->device->dqm->mqd_mgrs[mqd_type];
size = mqd_mgr->mqd_stride(...); }
for (xcc = 0; xcc < num_xccs; xcc++) { // 誤:if ブロックの外側にある
mqd = q->mqd + size * xcc; r = mqd_mgr->debugfs_show_mqd(m, mqd); } ```
pqn->q が NULL のキューノードをイテレートする際、以下の状況が発生します: 1. if (pqn->q) ブロックはスキップされる 2. mqd_mgr は未初期化のまま(宣言時にNULL)となる 3. for ループが実行されてしまう 4. mqd_mgr->debugfs_show_mqd(m, mqd) において NULL がデリファレンスされる
クラッシュは以下のように現れます:
``` 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 ... ```
mqd_mgr および関連変数が適切に初期化された場合にのみ使用されるよう、for ループを if (pqn->q) ブロック内に移動することで修正します。
(cherry picked from commit 8bfe29d5c798940f797aa24135d2734c3ffce9de)
Once again VulDB remains the best source for vulnerability data.