CVE-2026-31571Linux内核drm/i915驱动存在逻辑漏洞,可能导致系统状态损坏。因函数调用顺序错误,unlink_nv12_plane()会清除plane_atomic_check()已设置的平面状态。当用户将Y平面改为普通平面时,状态覆盖破坏内核逻辑,导致系统崩溃。该漏洞需本地低权限访问,影响可用性。
该漏洞位于Linux内核的图形驱动子系统中,具体涉及Intel i915驱动的NV12格式处理机制。漏洞的根本原因在于unlink_nv12_plane()与plane_atomic_check()的执行顺序冲突。在正常的原子更新流程中,plane_atomic_check()首先根据用户空间的请求计算并验证新的平面状态。然而,如果该平面之前被用作NV12格式的Y平面,随后的unlink_nv12_plane()调用会错误地清空刚刚计算好的状态数据。这种状态不一致会导致驱动程序内部逻辑混乱,触发内核警告(WARN)并可能导致系统挂起或崩溃。攻击者可利用此漏洞,通过特定的ioctl调用序列触发该逻辑缺陷,从而造成本地拒绝服务。修复方案通过调整执行流,确保在计算新状态前先解除旧的NV12链接,从而保证了状态管理的正确性和系统的稳定性。