CVE-2026-31731Linux内核热管理核心模块存在安全漏洞,涉及热管理区移除与恢复进程之间的竞态条件。问题源于thermal_zone_pm_complete和thermal_zone_device_resume函数会重新初始化延迟工作项,而thermal_zone_device_unregister中的取消操作可能无法捕获正在运行的工作。这导致热管理区对象被过早释放,正在运行的工作项随后访问该对象时引发释放后重用(UAF)漏洞。攻击者可利用此漏洞导致系统崩溃或潜在的权限提升。
该漏洞主要发生在Linux内核的电源管理和热子系统交互期间。存在两种失败场景:首先,当thermal_pm_notify_complete调用thermal_zone_pm_complete时,若工作项正在运行,它会重新初始化poll_queue。随后的thermal_zone_device_unregister调用cancel_delayed_work_sync会因重新初始化而错过该工作项,导致在对象释放后继续执行,造成UAF。其次,thermal_zone_device_resume在thermal_zone_exit返回后重新初始化工作队列,同样导致UAF。修复方案包括将工作取消移至准备阶段以防止新工作入队,使用专用工作队列并在准备阶段刷新残留工作,以及在恢复函数中增加状态检查以防止正在销毁的区域重新初始化工作。