{"id":"CVE-2026-98180","title":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: RCU-free the scheduler-containing ring and VM objects\n\nBoth struct msm_ringbuffer and struct msm_gem_vm embed a struct\ndrm_gpu_scheduler","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: RCU-free the scheduler-containing ring and VM objects\n\nBoth struct msm_ringbuffer and struct msm_gem_vm embed a struct\ndrm_gpu_scheduler.  msm_ringbuffer_destr…","severity":"high","cvss":7.1,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","vendor":"Linux","product":"Linux","affected":["Linux >= 1d8a5ca436ee4a28eec14cb813f790f7cdeeee19 < d81bf4581903b0cba0698cd4d1c07fc6be21754a","Linux >= 1d8a5ca436ee4a28eec14cb813f790f7cdeeee19 < 713abac5c04ccbae67f9ac68c3921845535388e7","Linux >= 1d8a5ca436ee4a28eec14cb813f790f7cdeeee19 < 01c8d1f385f788f1bbbbb7687c4386d614281218","Linux 5.15"],"published":"2026-10-06","updated":"2026-10-07","sourceUpdated":"2026-10-07T07:17:04.363","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-98180","references":[{"url":"https://git.kernel.org/stable/c/01c8d1f385f788f1bbbbb7687c4386d614281218","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/713abac5c04ccbae67f9ac68c3921845535388e7","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/d81bf4581903b0cba0698cd4d1c07fc6be21754a","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"epss":0.00206,"epssPercentile":0.09767,"ingestedAt":"2026-10-06T08:50:17.452Z","slug":"CVE-2026-98180","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\ndrm/msm: RCU-free the scheduler-containing ring and VM objects\n\nBoth struct msm_ringbuffer and struct msm_gem_vm embed a struct\ndrm_gpu_scheduler.  msm_ringbuffer_destroy() and the VM free callback\nmsm_gem_vm_free() call drm_sched_fini() on the embedded scheduler and then\nfree the containing object with plain kfree().\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 (the submit out-fence, or\na VM_BIND fence, via sync_file / drm_syncobj) keeps pointing at the embedded\nscheduler after the ring/VM is freed, so a later get_timeline_name() --\nreachable unprivileged through SYNC_IOC_FILE_INFO -- dereferences freed slab\nmemory (KASAN slab-use-after-free read).\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\nobjects with kfree_rcu() instead of kfree().\n\nPatchwork: https://patchwork.freedesktop.org/patch/750234/\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":39,"depthScoreParts":{"impact":39.1,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":217270,"id":"CVE-2026-98180","ts":1791361304000,"field":"cvss","old":null,"new":"7.1"},{"seq":217269,"id":"CVE-2026-98180","ts":1791361304000,"field":"severity","old":"none","new":"high"}]}