CVE-2026-98180
drm/msm:使包含调度器的 ring 和 VM 对象免于 RCU
- 已发布
- 2026年10月6日
- 已更新
- 2026年10月19日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年11月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H低 · 未来 30 天
- 百分位
- 1.9%
- 型号日期
- 2026年11月4日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,以下漏洞已被修复:drm/msm:对包含调度器的 ring 和 VM 对象进行 RCU 释放。struct msm_ringbuffer 和 struct msm_gem_vm 都内嵌了一个 struct drm_gpu_scheduler。msm_ringbuffer_destroy() 和 VM 释放回调 msm_gem_vm_free() 会对内嵌的调度器调用 drm_sched_fini(),然后使用普通的 kfree() 释放包含该调度器的对象。drm_sched_fence_get_timeline_name() 返回 fence->sched->name,而调度器 fence 保留了一个 .release 回调,因此它在发出信号时不会被 ops 分离。一个已完成的 fence 被导出到用户空间(提交的 out-fence,或通过 sync_file / drm_syncobj 导出的 VM_BIND fence)后,在 ring/VM 被释放之后仍会指向内嵌的调度器,因此后续的 get_timeline_name() 调用——可通过 SYNC_IOC_FILE_INFO 以非特权方式访问——会解引用已释放的 slab 内存(KASAN slab-use-after-free 读取)。根据 dma-fence 生命周期约定,导出者必须让支撑已发出信号 fence 的数据在 RCU 宽限期内保持存活。应使用 kfree_rcu() 而非 kfree() 来释放包含调度器的对象。Patchwork:https://patchwork.freedesktop.org/patch/750234/
来源
针对 CVE-2026-98180 的概念验证及经 KASAN 确认的 KUnit 复现程序。该漏洞是 drm/msm 中一个包含调度器的 ring 和 VM 对象的释放后使用(use-after-free)问题,可通过非特权 SYNC_IOC_FILE_INFO 触达。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。