CVE-2026-31566Linux内核的drm/amdgpu驱动中存在释放后重用(UAF)漏洞。在amdgpu_amdkfd_submit_ib函数中,代码在调用dma_fence_wait等待GPU作业完成之前,错误地调用了dma_fence_put释放了fence对象的引用。如果该引用是最后一个,fence对象将被立即释放,导致后续的wait操作访问已释放的内存,从而引发内核崩溃或潜在的权限提升。
该漏洞位于drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c的amdgpu_amdkfd_submit_ib函数中。该函数负责提交Indirect Buffer (IB)并获取用于同步的fence。原始代码逻辑存在顺序错误:先执行dma_fence_put(f)减少引用计数,若计数归零则释放内存;紧接着调用dma_fence_wait(f)访问该fence。这种时序错误导致了典型的UAF漏洞。本地低权限攻击者可通过触发该驱动路径利用此漏洞,导致拒绝服务(DoS)或在特定条件下实现内核代码执行。