CVE-2026-43293Linux内核中的chips-media wave5驱动程序存在一个安全漏洞。在轮询模式下,驱动程序使用hrtimer定期触发wave5_vpu_timer_callback(),并通过kthread_queue_work()将工作加入队列。由于清理顺序错误,原代码在取消hrtimer之前就调用了kthread_destroy_worker(),这创建了一个竞态条件窗口。在此窗口内,定时器可能触发并尝试向正在销毁的工作队列中添加新任务,导致内核触发WARNING警告,影响系统稳定性。
该漏洞的根源在于模块移除时的资源释放顺序不当。在轮询模式(irq < 0)下,wave5驱动依赖高精度定时器来调度工作。kthread_destroy_worker()函数内部通过WARN_ON宏检查工作队列是否为空,如果不为空则会产生警告。原代码先销毁worker,再取消定时器。如果在worker销毁后、定时器取消前,定时器回调函数执行,它会尝试向已销毁的worker队列添加工作,从而触发警告。修复方案是将hrtimer_cancel()调用移至kthread_destroy_worker()之前,确保在销毁worker前定时器已停止且不再产生新工作。