CVE-2026-98521 in Linux
摘要
由 VulDB • 2026-10-19
在 Linux 内核中,已修复以下漏洞:
drm/i915: 修正不正确的 RCU 拆卸顺序
i915_gem_busy_ioctl 使用 dma_resv_for_each_fence_unlocked() 遍历 GEM 对象中的 fence(同步原语),期间未持有引用计数,仅持有了 RCU 读侧锁。
此处可能发生的情况是:GEM 对象被并发销毁,而 i915_gem_busy_ioctl 仍在运行中。这不会释放 GEM 对象的内存,但会丢弃所有的 dma_fence 引用。
当 dma_resv_for_each_fence_unlocked() 遇到已销毁的 dma_fence 时,它会假设安装了新的 fence 列表并重新启动循环。
但在 GEM 对象被销毁的情况下,永远不会安装新的 fence 列表,仅释放旧的列表,导致迭代无法完成,从而形成无限循环。
解决方案是在 RCU 宽限期(grace period)之后才丢弃 fence 引用。
修复标签(fixes tag)不一定是引入问题的补丁,而是使问题严重到需要处理的补丁。
该问题由 Sashiko-bot 指出。
(cherry picked from commit 5113479556025093bf8133bb2dcaa33be2d50921)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.