CVE-2025-71099CVE-2025-71099是Linux内核中drm/xe/oa(Intel Xe GPU性能监控)模块的一个高危安全漏洞,CVSS评分7.8。该漏洞属于Use-After-Free(释放后重用)类型,存在于xe_oa_add_config_ioctl()函数中。漏洞的根本原因是在释放metrics_lock互斥锁后仍然访问oa_config->id,而该锁本应保护oa_config的生命周期。攻击者可以通过精确的时序控制,猜测配置ID并在适当的时机调用xe_oa_remove_config_ioctl(),使得oa_config对象在其被访问前被释放,从而触发UAF漏洞。这种竞态条件可能导致内核崩溃(拒绝服务)或在特定条件下实现权限提升。漏洞影响本地低权限用户,无需用户交互即可利用。
在xe_oa_add_config_ioctl()函数执行过程中,代码首先获取metrics_lock互斥锁,对oa_config进行操作后释放该锁,但随后仍然访问oa_config->id。由于metrics_lock保护的是oa_config的生命周期,释放锁后oa_config可能已被其他线程释放。攻击者利用这一时序漏洞:1)线程A调用xe_oa_add_config_ioctl()并获取metrics_lock;2)线程A完成关键操作并释放metrics_lock;3)线程B(攻击者控制)调用xe_oa_remove_config_ioctl()并猜测正确的oa_config ID;4)线程B成功移除配置并释放oa_config对象;5)线程A继续执行并解引用已释放的oa_config->id,触发UAF。修复方案为在持有锁期间将oa_config->id缓存到栈上的本地变量中,确保在锁释放后访问的是安全的数据副本。