CVE-2025-71301Linux内核的DRM(Direct Rendering Manager)子系统中存在一个竞争条件漏洞。该问题主要涉及drm_gem_shmem_helper模块在处理vmap和vunmap操作时的保留锁管理不当。由于相关代码在调用这些操作时未正确持有GEM对象的reservation lock,导致在并发场景下可能触发内核警告及潜在的内存访问错误。本地攻击者可利用此漏洞破坏系统稳定性,导致系统崩溃或拒绝服务。
该漏洞位于Linux内核的drivers/gpu/drm/drm_gem_shmem_helper.c文件中。DRM GEM SHMEM helper用于管理共享内存的图形缓冲区。在执行vmap(将内存映射到内核地址空间)和vunmap操作时,必须持有reservation lock以确保操作的原子性和内存一致性。漏洞代码路径在调用vmap_locked等内部函数时,未遵循加锁协议(未调用dma_resv_lock)。这导致在多线程环境下,当vmap操作正在进行时,如果发生并发访问(如pin操作或获取页面),内核会检测到锁未持有而抛出WARNING(如drm_gem_shmem_vmap_locked+0x3a3处的警告)。这种逻辑错误虽然主要影响测试代码,但在特定配置下可能导致内核状态异常,进而引发系统死锁或崩溃(DoS)。修复方式是在vmap/vunmap操作周围显式添加锁的获取与释放。