CVE-2026-43370Linux内核中的drm/amdgpu驱动程序存在一个释放后重用(UAF)竞态条件漏洞。该漏洞源于在fork()之后,父子进程共享同一个drm_file并尝试获取相同的虚拟机(VM)时,对vm->process_info的非原子赋值操作。这可能导致竞争条件,进而引发内存安全问题,攻击者可利用此漏洞造成系统崩溃或潜在的权限提升。
该漏洞的根源在于Linux内核drm/amdgpu驱动中`vm->process_info`的赋值操作是非原子的。当父进程创建子进程(fork)后,两者共享`drm_file`文件描述符。如果父子进程几乎同时尝试获取同一个虚拟机(VM),它们可能会在对方完成赋值之前读取到旧值或空值,导致竞态条件。具体而言,一个进程可能释放了相关的内存结构,而另一个进程仍在使用该指针,从而触发释放后重用(UAF)。这种内核级别的内存破坏可导致系统崩溃(拒绝服务),在特定条件下甚至可能导致权限提升或代码执行。修复方案采用`cmpxchg()`原子指令替代普通赋值,确保在多进程并发环境下对共享资源的互斥访问,消除了竞态窗口。