CVE-2026-72003 是 Linux 内核 Broadcom WiFi 驱动 brcmfmac中的一个严重堆缓冲区溢出漏洞。该漏洞存在于驱动处理 802.11 认证帧(Authentication Frame)的代码路径中。当设备执行外部 SAE(Simultaneous Authentication of Equals)认证交换时,驱动会从接收到的管理帧中读取固定大小的字段,但未在处理前强制验证帧的最小长度。
核心问题在于长度计算中的整数下溢。当攻击者发送的 mgmt_frame_len小于管理帧头部偏移量(24字节)时,代码执行无符号减法运算导致值回绕为一个极大的数值。随后的 memcpy操作会使用这个错误的长度值,导致数据拷贝远超已分配的内核堆缓冲区边界。
/* brcmfmac 驱动中处理认证帧的漏洞代码路径 */static voidbrcmf_rx_auth_frame(struct brcmf_if *ifp, struct sk_buff *skb) { struct ieee80211_mgmt *mgmt; u32 mgmt_frame_len; u8*frame_body; mgmt = (struct ieee80211_mgmt *)skb->data; /* 漏洞点:未验证帧长度是否满足最小要求 */ mgmt_frame_len = skb->len; /* 计算帧体长度时发生整数下溢 *//* 当 mgmt_frame_len < 24 时,无符号减法回绕 */ frame_body = mgmt->u.auth.variable; u32 body_len = mgmt_frame_len -24; /* 0xFFFFFFFF... *//* 后续 memcpy 使用错误长度,导致堆溢出 */memcpy(ifp->auth_buf, frame_body, body_len); /* BOOM! */ } 此漏洞的触发条件极为简单:攻击者只需在外部 SAE 认证交换过程中发送一个过短的认证帧。由于 WPA3 的 SAE 认证广泛用于现代 WiFi 网络,任何启用 WPA3 且使用 Broadcom WiFi 芯片的设备在扫描或连接网络时都可能成为攻击目标。值得注意的是,攻击不需要任何预先认证或凭据,目标设备甚至无需已连接到恶意 AP——只需在信号范围内即可。
/* 修复补丁:添加最小长度检查 */static voidbrcmf_rx_auth_frame(struct brcmf_if *ifp, struct sk_buff *skb) { struct ieee80211_mgmt *mgmt; u32 mgmt_frame_len; /* 修复:强制验证最小帧长度 */if (skb->len <24+sizeof(mgmt->u.auth)) { brcmf_dbg(INFO, "auth frame too short: %u\n", skb->len); return; /* 丢弃过短帧 */ } /* 后续安全处理... */ mgmt_frame_len = skb->len; /* ... */ }