{"id":"CVE-2026-98512","kind":"vulnerability","aliases":["CVE-2026-98512"],"related":[],"title":"Linux kernel: Nouveau GPU driver frees scheduler too early, enabling memory reads","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/nouveau: RCU-free the scheduler-containing nouveau_sched\n\nstruct nouveau_sched embeds a struct drm_gpu_scheduler (base).\nnouveau_sched_destroy() calls nouveau_sched_fini() (which does\ndrm_sched_fini(&sched->base)) and then frees the object with plain\nkfree(sched).\n\ndrm_sched_fence_get_timeline_name() returns fence->sched->name, and the\nscheduler fence keeps a .release callback so it is not ops-detached on\nsignalling.  A finished fence exported to userspace via drm_syncobj /\nsync_file therefore keeps pointing at &sched->base after nouveau_sched_destroy(),\nand a later get_timeline_name() -- reachable unprivileged through\nSYNC_IOC_FILE_INFO -- dereferences freed memory (KASAN slab-use-after-free\nread).\n\nPer the dma-fence lifetime contract the exporter must keep the data backing a\nsignalled fence alive for an RCU grace period.  Free the scheduler-containing\nobject with kfree_rcu() instead of kfree().","summary":"The 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.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["gpu-workstations","linux-kernel","nouveau","runtime","shared-linux-hosts"],"not_affected_if":["no-nvidia-gpu","nouveau-not-loaded","proprietary-nvidia-driver"],"how_to_check":"- `uname -r` and compare against the fixed kernel builds listed in the NVD entry\n- `lsmod | grep nouveau` to confirm the Nouveau driver is loaded\n- unknown for exact affected version ranges","fix":"- Update the Linux kernel to a release that includes the upstream commit making nouveau_sched freeing RCU-safe (`kfree_rcu()`)\n- unknown for specific fixed version numbers","status":"open","published_at":"2026-10-18T16:17:02+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:25:22+00:00","updated_at":"2026-10-25T05:25:22+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T05:25:22Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a release that includes the upstream commit making nouveau_sched freeing RCU-safe (`kfree_rcu()`)\n- unknown for specific fixed version numbers","reach":"local","title":"Linux kernel: Nouveau GPU driver frees scheduler too early, enabling memory reads","impact":"medium","summary":"The 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.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","nouveau","gpu-workstations","shared-linux-hosts"],"confidence":0.6,"needs_auth":"no","worst_case":"local user reads freed kernel memory, possibly crashing or leaking data","analyst_note":"Find the upstream kernel fix commit and the affected/fixed version ranges from the NVD entry or kernel.org stable advisories.","how_to_check":"- `uname -r` and compare against the fixed kernel builds listed in the NVD entry\n- `lsmod | grep nouveau` to confirm the Nouveau driver is loaded\n- unknown for exact affected version ranges","needs_analyst":true,"not_affected_if":["proprietary-nvidia-driver","no-nvidia-gpu","nouveau-not-loaded"],"who_is_affected":"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.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000696,"input_tokens":3614,"output_tokens":670,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-98512':15A,18A 'aliv':218C 'back':214C 'base':106C,120C,173C 'call':60B,110C 'callback':147C 'contain':94C,228C 'contract':207C 'cve':13A,16A 'data':213C 'derefer':191C 'destroy':109C,177C 'detach':154C 'dma':204C 'dma-fenc':203C 'driver':5A,34B 'drm':103C,116C,130C,164C 'drm/nouveau':87C 'earli':9A 'emb':100C 'enabl':10A 'export':49B,160C,209C 'fenc':48B,132C,137C,143C,159C,205C,217C 'file':63B,167C,189C 'fini':113C,118C 'finish':47B,158C 'follow':82C 'free':6A,35B,72B,90C,123C,199C,224C 'freed':192C 'get':133C,181C 'gpu':4A,20B,33B,104C 'gpu-workst':19B 'grace':44B,222C 'host':30B 'info':64B,190C 'instead':233C 'ioc':62B,188C 'kasan':194C 'keep':144C,169C,211C 'kernel':2A,24B,75B,80C 'kfree':128C,231C,235C 'later':180C 'lifetim':206C 'linux':1A,23B,29B,79C 'linux-kernel':22B 'local':58B 'may':52B 'memori':11A,76B,193C 'must':210C 'name':135C,139C,183C 'nouveau':3A,25B,32B,95C,98C,107C,111C,175C 'object':38B,125C,229C 'op':153C 'ops-detach':152C 'per':201C 'period':45B,223C 'plain':127C 'point':54B,170C 'rcu':43B,89C,221C,232C 'rcu-fre':88C 'reachabl':184C 'read':12A,73B,200C 'releas':146C 'resolv':86C 'return':136C 'runtim':26B 'sched':96C,99C,108C,112C,117C,119C,129C,131C,138C,172C,176C 'schedul':7A,37B,93C,105C,142C,227C 'scheduler-contain':92C,226C 'share':28B 'shared-linux-host':27B 'signal':156C,216C 'slab':196C 'slab-use-after-fre':195C 'still':53B 'struct':97C,102C 'sync':61B,166C,187C 'syncobj':165C 'therefor':168C 'timelin':134C,182C 'trigger':67B 'unprivileg':185C 'use':70B,197C 'use-after-fre':69B 'user':59B 'userspac':51B,162C 'via':163C 'vulner':83C 'wait':40B 'without':39B 'workstat':21B","nicknames":[],"mitigations":[],"who_affected":"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.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:02+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98512","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98512","severity":null,"published_at":"2026-10-18T16:17:02+00:00","modified_at":"2026-10-19T10:19:04+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}