CVE-2026-23466Linux内核中的drm/xe驱动在处理GGTT MMIO访问时存在保护机制缺陷。当前依赖热插拔的保护在驱动加载失败时无效,且devm释放函数无法确保缓冲区对象在MMIO区域移除前被彻底销毁。攻击者可利用该漏洞在本地低权限下触发竞态条件,导致内存破坏,进而可能实现权限提升。
该漏洞源于Linux内核 `drm/xe` 驱动中GGTT(全局图形翻译表)MMIO访问保护机制的不足。原实现依赖 `drm_dev_enter` 检查设备存活状态,但该机制在驱动加载失败场景下失效,因为 `drm_dev_unplug` 不会被触发。此外,资源管理机制存在竞态窗口:`devm` 释放函数无法确保所有映射了GGTT的缓冲区对象(BO)在GGTT MMIO区域被移除前被销毁,特别是那些由异步工作线程延迟释放的BO。这导致在设备拆卸过程中,仍存在代码路径尝试访问已失效的MMIO内存区域,造成释放后使用(UAF)或内存损坏。修复方案引入了一个由GGTT锁保护的开源标志位,并在 `dev_fini_ggtt` 释放函数中清除该标志,以显式阻断拆卸后的MMIO访问。