IPBUF安全漏洞报告
English
CVE-2025-71285 CVSS 5.5 中危

CVE-2025-71285 Linux内核qrtr驱动空指针引用漏洞

披露日期: 2026-05-06
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2025-71285
漏洞类型
竞态条件/空指针解引用
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelRace ConditionNULL Pointer DereferenceDoSQRTRMHICVE-2025-71285

漏洞概述

Linux内核中的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缓冲区,并在消费后在回调中回收缓冲区。

攻击链分析

STEP 1
初始访问
攻击者需要具备对目标设备的本地低权限访问权限(PR:L),或者该漏洞在特定硬件(Qcom X1E80100)启动时自动触发。
STEP 2
触发竞态
系统启动或驱动加载时,MHI堆栈利用'auto_queue'功能开始自动处理下行链路(DL)通道数据。
STEP 3
初始化未完成
在QRTR客户端驱动完成探测(probe)和内部数据结构初始化之前,MHI堆栈调用了'dl_callback'回调函数。
STEP 4
空指针引用
回调函数尝试访问尚未初始化的驱动程序结构体指针,导致NULL指针解引用。
STEP 5
系统崩溃
内核发生恐慌(Panic)或崩溃,导致系统拒绝服务(Availability Impact: High)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC / Trigger for CVE-2025-71285 * Vulnerability: Race condition in Linux kernel net: qrtr MHI auto_queue * Impact: NULL pointer dereference, Kernel Panic, Denial of Service * * Analysis: * This vulnerability is triggered during the boot process or driver loading * on vulnerable hardware (e.g., Qcom X1E80100 CRD) when the MHI stack * has 'auto_queue' enabled for the IPCR DL channel. * * Exploitation Logic: * 1. System boots on affected hardware. * 2. MHI controller initializes and enables auto_queue for DL channels. * 3. Data arrives or transfer starts, triggering dl_callback. * 4. If dl_callback runs before qrtr_client_probe() completes initialization, * it accesses a NULL pointer. * * Code Snippet (Conceptual Kernel Trace): * // In vulnerable code: * // mhi_queue() is called by MHI stack immediately. * // dl_callback() fires -> accesses qrtr->ep (which is NULL). * // Result: Kernel Panic. */ // Note: This is a hardware/timing dependent race condition. No specific // user-space exploit code is required; simply booting the vulnerable kernel // on the target hardware can trigger the crash.

影响范围

Linux Kernel (versions prior to commit 51731792a25c)

防御指南

临时缓解措施
由于该漏洞涉及内核底层驱动与硬件的交互,且在启动时触发,最有效的缓解措施是应用官方发布的内核补丁。对于无法立即重启打补丁的关键服务器,应确保定期备份数据以防因系统崩溃导致的数据丢失,并监控内核日志中的异常指针引用错误。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表