CVE-2026-89803
HighCVSS 7.8Summary
In the Linux kernel, the drm/nouveau driver's nouveau_channel_del() tore down the fence context before unsubscribing the channel-kill event. A narrow window allowed nouveau_fence_context_kill() to run on an already freed fence context, causing a use-after-free. The fix unsubscribes before tearing down dependent structures.
Risk Assessment
A use-after-free in the fence context can lead to kernel crash or potential privilege escalation. Affects systems with NVIDIA GPUs (Fermi and newer).
Recommendation
Update the Linux kernel to a version with the drm/nouveau fix. Restrict GPU device access for untrusted users.
Other vulnerabilities in Linux kernel (drm/nouveau)
See all- CVE-2026-98511Unknown
In the Linux kernel's drm/nouveau driver, nouveau_bo_pin_locked() increments the buffer's pin count even when a re-pin request fails with -EBUSY due to incompatible memory domains. The extra pin count is never decremented by a matching unpin, triggering the WARN_ON_ONCE(bo->pin_count) warning in ttm_bo_release(). The issue was found while fuzzing the nouveau driver with a modified Syzkaller.
- CVE-2026-46006High
A vulnerability has been identified in the Linux kernel related to a u32 overflow in the relocation bounds check in drm/nouveau. The issue occurs during offset validation, potentially leading to system instability.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: unsubscribe the channel-kill event before the fence context nouveau_channel_del() tears the fence context down first and only drops the channel-kill subscription later, in the middle of the nvif object teardown: if (chan->fence) nouveau_fence(chan->cli->drm)->context_del(chan); ... nvif_object_dtor(&chan->vram); nvif_event_dtor(&chan->kill); The subscribed handler is nouveau_channel_killed(), which calls nouveau_channel_kill() and from there nouveau_fence_context_kill() on chan->fence. A kill event delivered in that window takes fctx->lock and walks fctx->pending on a fence context that context_del() has already freed. Nothing reaches this below Fermi today, because the subscription is gated on FERMI_CHANNEL_GPFIFO and nothing kills a channel there. On Fermi and newer the window is real but narrow, since a kill has to land exactly while the channel is being destroyed. That is reason enough on its own, which is why this carries a Fixes: tag. The last patch in this series subscribes Tesla channels as well; nothing kills those today, so it does not widen the exposure now, but it is the groundwork for a recovery path that would, and the ordering is better fixed before that lands than alongside it. Drop the subscription before anything it depends on is torn down.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

