Live › vulnerability › CVE-2026-98512
Go to dashboardThe Nouveau GPU driver frees its scheduler object without waiting for an RCU grace period, while finished fences exported to userspace may still point to it. A local user calling SYNC_IOC_FILE_INFO can then trigger a use-after-free read of kernel memory.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Systems running a Linux kernel with the Nouveau open-source NVIDIA driver loaded, where local users can open the DRM device and call SYNC_IOC_FILE_INFO. Systems using the proprietary NVIDIA driver or no NVIDIA GPU are not affected by this code path. The sources do not give exact affected version ranges.
No product ranges from the sources yet.
uname -r and compare against the fixed kernel builds listed in the NVD entrylsmod | grep nouveau to confirm the Nouveau driver is loadedkfree_rcu())Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau: RCU-free the scheduler-containing nouveau_sched
struct nouveau_sched embeds a struct drm_gpu_scheduler (base). nouveau_sched_destroy() calls nouveau_sched_fini() (which does drm_sched_fini(&sched->base)) and then frees the object with plain kfree(sched).
drm_sched_fence_get_timeline_name() returns fence->sched->name, and the scheduler fence keeps a .release callback so it is not ops-detached on signalling. A finished fence exported to userspace via drm_syncobj / sync_file therefore keeps pointing at &sched->base after nouveau_sched_destroy(), and a later get_timeline_name() -- reachable unprivileged through SYNC_IOC_FILE_INFO -- dereferences freed memory (KASAN slab-use-after-free read).
Per the dma-fence lifetime contract the exporter must keep the data backing a signalled fence alive for an RCU grace period. Free the scheduler-containing object with kfree_rcu() instead of kfree().
This page as .md · .json · in your agent: get_signal("CVE-2026-98512")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.