IPBUF安全漏洞报告
English
CVE-2026-31604 CVSS 5.5 中危

CVE-2026-31604 Linux内核rtw88驱动资源泄漏漏洞

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

漏洞信息

漏洞编号
CVE-2026-31604
漏洞类型
资源管理错误
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

资源泄漏Linux内核rtw88DoS本地漏洞

漏洞概述

Linux内核中的rtw88无线网卡驱动程序存在资源泄漏漏洞。在驱动探测(probe)过程中,该程序获取了对USB设备的引用,但在某些探测错误(如描述符解析失败)发生时未能正确释放该引用。由于驱动核心在接口绑定期间已持有引用,这种额外的引用会导致设备资源泄漏,进而可能造成内存耗尽或系统可用性降低。

技术细节

该漏洞位于Linux内核的wifi子系统rtw88驱动中,涉及USB设备引用计数的生命周期管理。根据USB驱动规范,驱动核心在接口绑定期间会自动持有引用。然而,rtw88驱动在probe函数中错误地调用了获取设备引用的操作(如usb_get_dev),并未在所有可能的错误退出路径上执行相应的释放操作(如usb_put_dev)。具体而言,当描述符解析失败等错误发生时,代码直接跳转至清理路径,遗漏了释放步骤。这导致USB设备对象的引用计数无法归零,内核内存无法回收。攻击者若具备本地低权限,可通过反复触发探测失败条件(例如插入特定USB设备或模拟硬件错误)导致系统内存资源逐渐耗尽,最终造成拒绝服务(DoS)。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限访问权限(AV:L, PR:L)。
STEP 2
步骤2
攻击者触发rtw88驱动的探测过程,例如通过插入受影响的WiFi硬件或模拟设备加载。
STEP 3
步骤3
在探测过程中制造特定错误(如描述符解析错误),导致驱动进入错误处理路径。
STEP 4
步骤4
驱动因代码缺陷未释放USB设备引用,造成内核内存泄漏。重复此操作可耗尽系统资源(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for Reference Leak in rtw88 driver * This simulates the logic flaw where a reference is taken * but not released on error paths. */ #include <linux/module.h> #include <linux/usb.h> static int probe_leak_simulation(struct usb_interface *intf, const struct usb_device_id *id) { struct usb_device *udev = interface_to_usbdev(intf); // Simulate taking a reference (Vulnerability: redundant ref) usb_get_dev(udev); // Simulate an error condition (e.g., descriptor parsing failure) if (1) { // Vulnerability: Missing usb_put_dev(udev) here before returning error return -ENODEV; } // Normal path would release it usb_put_dev(udev); return 0; } // Module init/exit omitted for brevity // In a real scenario, this requires specific hardware to trigger.

影响范围

Linux Kernel < 6.6 (based on stable patch context)
Linux Kernel < 6.1 (based on stable patch context)

防御指南

临时缓解措施
建议立即更新系统内核到最新稳定版本,以修复引用计数泄漏问题。若无法立即更新,应限制加载rtw88驱动模块或移除受影响的硬件设备。

参考链接

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