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

CVE-2026-31661 Linux内核brcmsmac驱动DMA释放漏洞

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

漏洞信息

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

相关标签

Linux Kernel内存管理错误DoSDMAbrcmsmac本地漏洞

漏洞概述

Linux内核中的brcmsmac无线驱动程序存在一个安全漏洞,涉及DMA(直接内存访问)内存释放的大小不匹配问题。该漏洞源于`dma_alloc_coherent`函数在分配内存时可能会为了对齐而调整大小,并将实际分配的大小保存在`alloced`变量中。然而,在释放内存时,代码未能正确使用这个调整后的大小,导致`dma_free_coherent`被调用时使用了错误的参数。这种不匹配可能破坏内核内存管理,导致系统崩溃或拒绝服务。该漏洞需要本地低权限用户即可触发,主要影响系统的可用性。

技术细节

该漏洞发生在Linux内核的Broadcom FullMAC WLAN驱动(brcmsmac)中。在处理DMA内存分配时,为了满足硬件的对齐要求,`dma_alloc_coherent`可能会扩展请求的缓冲区大小。驱动程序正确地将这个扩展后的实际大小存储在`alloced`变量中。然而,漏洞点在于内存释放路径,代码错误地回退到了原始请求的大小,而不是使用存储在`alloced`中的实际大小。当`dma_free_coherent`被调用并传入过小(或错误)的大小时,DMA映射子系统可能会尝试释放错误的内存页或破坏内存管理元数据。由于攻击向量为本地(AV:L)且权限要求较低(PR:L),本地攻击者可以通过特定的无线网络操作(如频繁触发接口状态变更)来利用此漏洞,导致内核恐慌或系统不稳定。虽然CVSS评分显示机密性和完整性影响为无,但内核内存破坏本质上具有不稳定性。

攻击链分析

STEP 1
步骤1:获取本地访问权限
攻击者获得目标系统的本地低权限用户访问权限。
STEP 2
步骤2:触发无线驱动操作
攻击者通过系统调用或工具与brcmsmac无线网卡驱动进行交互,执行能够触发DMA内存分配和释放的操作(如扫描、连接或接口重置)。
STEP 3
步骤3:触发内存释放漏洞
驱动程序执行dma_free_coherent,由于使用了错误的大小参数,导致内核内存管理结构被破坏。
STEP 4
步骤4:系统崩溃
内核检测到内存不一致或非法访问,触发内核恐慌(Kernel Panic),导致系统拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC Concept for CVE-2026-31661 * This module attempts to trigger the brcmsmac DMA free bug. * Compile with: make -C /lib/modules/$(uname -r)/build M=$(pwd) modules */ #include <linux/module.h> #include <linux/kernel.h> #include <linux/netdevice.h> // Trigger logic would involve interacting with the wireless device // to force DMA allocation and subsequent free operations. // Specific hardware interaction is required. static int __init poc_init(void) { printk(KERN_INFO "CVE-2026-31661 PoC: Loading module to test brcmsmac DMA handling.\n"); // Real exploitation requires specific hardware (brcmsmac) present. return 0; } static void __exit poc_exit(void) { printk(KERN_INFO "CVE-2026-31661 PoC: Unloading module.\n"); } module_init(poc_init); module_exit(poc_exit); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("PoC for brcmsmac dma_free_coherent size mismatch");

影响范围

Linux Kernel (包含vulnerable brcmsmac驱动的版本)

防御指南

临时缓解措施
如果系统中不需要使用Broadcom brcmsmac无线网卡驱动,建议通过modprobe.d配置文件禁用该驱动(blacklist brcmsmac),或者停止使用受影响的硬件,以降低风险。对于必须使用的情况,应严格限制本地用户权限,并尽快应用补丁。

参考链接

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