{"id":"CVE-2026-98512","revision":"1ac5c4e3686f460a8fc2f82e7b8eb5bb","records":[{"revision":"1ac5c4e3686f460a8fc2f82e7b8eb5bb","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-98512","aliases":[],"title":"drm/nouveau: RCU-free the scheduler-containing nouveau_sched","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().","state":0,"publishedAt":"2026-10-18T15:17:27.102+00:00","modifiedAt":"2026-10-19T09:20:52.234+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/gpu/drm/nouveau/nouveau_sched.c\",\n                        \"drivers/gpu/drm/nouveau/nouveau_sched.h\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5f03a507b29e44a848f315c7240c19894dd8be4f\",\n                            \"lessThan\": \"40edf5eefc3fd94592a91d6eb074d4fc6f606c75\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5f03a507b29e44a848f315c7240c19894dd8be4f\",\n                            \"lessThan\": \"35151e9a8274174ccbb92e3b3ba7dc7a008dcada\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5f03a507b29e44a848f315c7240c19894dd8be4f\",\n                            \"lessThan\": \"cd6e11b6ebe04a0a1f1435df561acada9eadc563\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5f03a507b29e44a848f315c7240c19894dd8be4f\",\n                            \"lessThan\": \"f7eae6d8d768fabd6b59779ca7da79e02c74e113\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/gpu/drm/nouveau/nouveau_sched.c\",\n                        \"drivers/gpu/drm/nouveau/nouveau_sched.h\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.8\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.8\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.112\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.55\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.9\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/40edf5eefc3fd94592a91d6eb074d4fc6f606c75","https://git.kernel.org/stable/c/35151e9a8274174ccbb92e3b3ba7dc7a008dcada","https://git.kernel.org/stable/c/cd6e11b6ebe04a0a1f1435df561acada9eadc563","https://git.kernel.org/stable/c/f7eae6d8d768fabd6b59779ca7da79e02c74e113"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98512","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-98512","identifiers":["CVE-2026-98512"]},"retained":false,"historicalAffected":[]}],"coverage":[]}