CVE-2025-71285Linux内核中的net: qrtr驱动程序存在一个安全漏洞,源于MHI堆栈的‘auto_queue’功能与客户端驱动初始化之间的竞态条件。该功能允许MHI堆栈自动管理接收缓冲区,但可能导致‘dl_callback’在QRTR驱动完全探测和初始化之前被调用。这种时序问题会导致空指针解引用,进而引发内核崩溃或拒绝服务。该问题已在Qcom X1E80100 CRD机器上被观察到会影响启动过程。修复方案包括移除‘auto_queue’功能,并由QRTR驱动手动管理接收缓冲区。
该漏洞发生在Linux内核的Qualcomm IPC Router (QRTR)驱动与MHI(Modem Host Interface)堆栈的交互过程中。MHI堆栈提供的‘auto_queue’功能旨在简化客户端驱动对RX路径(下行链路通道)缓冲区的管理。然而,此功能引入了一个严重的竞态条件。在系统启动或驱动加载期间,‘auto_queue’机制可能导致‘dl_callback’回调函数在客户端驱动完成探测和内部结构初始化之前被触发。此时,由于驱动结构尚未初始化,回调函数访问未初始化的指针导致NULL指针解引用,进而引发内核崩溃。尽管驱动程序尝试通过在调用mhi_prepare_for_transfer_autoqueue()之前初始化内部结构来绕过此问题,但仍存在代码路径在MHI准备之前调用队列API的风险。最终的修复方案是彻底移除‘auto_queue’功能,由QRTR驱动在探测期间根据环长度手动排队RX缓冲区,并在消费后在回调中回收缓冲区。