CVE-2026-89803 in Linux
要約
〜によって VulDB • 2026年09月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/nouveau: fenceコンテキストの削除前にchannel-killイベントをunsubscribeする
nouveau_channel_del()はまずfenceコンテキストを破棄し、その後nvifオブジェクトのteardown処理の中でchannel-kill購読を解除します。具体的には以下のような順序になります:
if (chan->fence) nouveau_fence(chan->cli->drm)->context_del(chan); ... nvif_object_dtor(&chan->vram); nvif_event_dtor(&chan->kill);
購読されているハンドラはnouveau_channel_killed()であり、これはnouveau_channel_kill()を呼び出し、そこからchan->fenceに対してnouveau_fence_context_kill()を実行します。このタイミングで配信されるkillイベントはfctx->ロックを取得し、context_del()によって既に解放済みのfenceコンテキストのfctx->pendingを走査しようとします。
現在ではFermiアーキテクチャ以降においてこれに到達するケースはありません。なぜなら、購読はFERMI_CHANNEL_GPFIFOでゲートされており、そこでのchannel killは行われないためです。Fermiおよびそれ以降のアークテクチャでは、killがチャンネルの破棄中という狭いタイミングに正確に着地する場合のみこの脆弱性ウィンドウが発生しますが、これはそれ自体十分な理由であり、Fixesタグが付与されている理由となっています。本シリーズの最後のパッチはTeslaチャンネルも対象としますが、現在これらをkillする処理はないため、現在の暴露範囲が拡大することはありません。しかし、これは回復経路のための基盤となるものであり、その実装と同時にではなく、先に順序を修正しておくことが望ましいです。
依存しているリソースがteardownされる前に、購読を解除します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.