📡 Linux 无线子系统周报(linux-wireless)
报告周期:2026-08-13(周四) ~ 2026-08-19(周三)生成时间:2026-08-20数据来源:lore.kernel.org linux-wireless/0.git,--depth=600 完整拉取,精确过滤
一、概览
| |
|---|
| 219 |
| 215 |
| 147 |
| ~110 |
| 🧩 协议栈(mac80211/cfg80211/nl80211/hwsim) | 6 |
| ~35 |
| ~40 |
消息类型分布:补丁提交 147 · 补丁讨论/回复 68 · 纯讨论/错误报告 4
二、协议栈 — 80211 🧩
本周协议栈层共 6 封补丁(占总补丁 4%),集中在 cfg80211 站管理安全加固与 mac80211 修复,全部为修复类,无新功能引入。
2.1 cfg80211 — 配置 API 层(3 封)
Slawomir Stepien 提交 3 片系列,系统性加固 station 添加路径:
| | | |
|---|
cfg80211: do not support direct add of station to AP_VLAN interfaces | | | 禁止向 AP_VLAN 接口直接添加 station。AP_VLAN 是用于已认证 STA 流量隔离的虚拟接口,此前 nl80211_new_station() 允许直接在 AP_VLAN 上添加 station,等于绕过 AP 的 802.11 认证/关联流程注入 STA——这是认证绕过漏洞。修复后仅允许在真正的 AP 接口上添加 station,AP_VLAN 上的地址自动同步 |
cfg80211: move link_id validation earlier in nl80211_new_station() | | | 将 link_id 校验提前到函数入口。原实现中 link_id 在驱动调用之后才校验,无效 link_id(如 MLO 场景非法链路号)会先传递到驱动层触发越界/未定义行为。提前校验使非法请求在进入驱动前被拒绝 |
cfg80211: check if AP has been started before adding new station | | | 添加 station 前校验 AP 是否已启动。在 nl80211_new_station() 入口增加 wdev->links[*].ap.started 检查,防止向未启动的 AP 注册 station,避免后续 beacon 发送/功率计算等路径访问未初始化状态 |
技术意义:这三片补丁完整覆盖了 station 添加路径的三类漏洞面——接口类型(AP_VLAN 绕过认证)、链路 ID(MLO 越界)、生命周期状态(AP 未启动)。其中 AP_VLAN 认证绕过是实际可利用的安全缺陷,建议优先合入稳定分支。
2.2 mac80211 — 软件 MAC 层(3 封)
| | | |
|---|
mac80211: avoid trimming injected FCS twice | | | 注入帧 FCS 被重复裁剪。注入路径中 ieee80211_xmit() 对带 IEEE80211_TX_INTFL_DONT_ENCRYPT 标志的帧剪除 FCS,但 ieee80211_skb_resize() 等路径在特定条件下已处理过 FCS,两处逻辑叠加导致多裁剪 4 字节,破坏注入帧(如测试工具 crafted frame)的完整性 |
mac80211: stop tpt LED trigger timer before freeing trigger | | | LED 触发器定时器 UAF。吞吐量 LED 触发器使用 delayed_work 定时更新,释放 trigger 时若定时器仍在运行,回调访问已释放的 tpt_led_trigger 结构 → use-after-free。修复在 tpt_led_trigger_deactivate() 中先 cancel_delayed_work_sync() 再释放 |
mac80211_hwsim: require exact alpha2 attribute length | | | hwsim 模拟器 alpha2 属性长度校验。hwsim_new_radio_nl() 解析 NL80211_ATTR_REG_ALPHA2 时未校验长度,短属性导致缓冲区越界读取。修复要求精确 2 字节(ISO 3166-1 alpha-2 国家码) |
2.3 协议栈安全总结
| | | |
|---|
| | | AP_VLAN 认证绕过、link_id 越界、AP 状态检查 |
| | | |
| | | |
| | | |
说明:本周 cfg80211/nl80211 无新功能补丁,mac80211 无 MLO 相关改动,协议栈侧以安全加固为主基调。
三、驱动/子系统热点
| | | |
|---|
| rtw88 (Realtek) | 59 | | RTL8723B/8723BS SDIO 支持预备、DAC IQ 校准重构、USB BMC 路由 |
| mt76 (MediaTek) | 24 | | testmode 缓冲区、6GHz 死锁、SDIO/UBS UAF、mt7996 offchannel |
| rtl8xxxu (Realtek) | 12 | | |
| mwifiex/nxpwifi | 12 | | |
| ath12k (Qualcomm) | 6 | | |
| ath11k (Qualcomm) | 3 | | |
| brcm (Broadcom) | 3 | | UAF、bus reset、SDIO work 初始化 |
| ath9k | 3 | | |
| rtw89 (Realtek) | 5 | | USB crash、debug off-by-one |
| iwlwifi (Intel) | 2 | | |
四、重点驱动补丁深度分析
4.1 rtw88 系列(Realtek — 59 封)🏆
本周最活跃子系统,两大主线 + 一个 USB 优化:
主线一:RTL8723B/8723BS SDIO 支持预备(luka.gejak v5 0/6)
| | |
|---|
| add the RTL8723B chip type and SDIO helper | 新增 RTL8723B 芯片类型定义和 SDIO 助手函数,为后续驱动绑定铺路 |
| rx: mark zero length packets on RTL8723BS | RX 路径对 RTL8723BS 打零长度包标记,防止空包进入协议栈 |
| tx: extend the TX report purge timeout to RTL8723BS | RTL8723BS 的 TX report 清除超时延长(该芯片固件响应较慢) |
| sdio: track free TX pages and OQT credits for RTL8723BS | SDIO 接口跟踪空闲 TX 页与 OQT(Outstanding Queue Threshold)信用额度,精确控制流控 |
| sdio: set up RX aggregation and interrupts for RTL8723BS | 配置 SDIO RX 聚合与中断,128 字节对齐等多芯片差异处理 |
| sdio: add TX back-pressure and retry on page starvation | TX 背压与页饥饿重试机制,防止 SDIO 传输阻塞 |
技术意义:该系列是 RTL8723BS(SDIO 蓝牙/WiFi 组合芯片,常见于低成本平板/开发板)驱动的完整支持预备。v4→v5 迭代中 Ping-Ke Shih 逐片 review,重点调整了 OQT 信用额度计算与 RX 聚合边界。注意:RTL8723BS 走 SDIO 接口、RTL8723DE 走 PCIe 接口,两者共用 rtw88 核心但传输层独立。
主线二:rtw8822c DAC IQ 校准重构(Arsenii Pashchenko v2→v6)
| | |
|---|
| convert DAC IQ buffers and signatures to s32 | 将 DAC IQ 校准缓冲从无符号转为 s32 有符号,消除符号扩展不一致 |
| use sign_extend32 for DAC IQ validation | 用 sign_extend32() 替代手工符号扩展,修复负值校验错误 |
| switch to the kernel's sort() library | 用内核通用 sort() 替换手写排序,消除 O(N²) 冒泡 |
| simplify amplitude search and offset via s32 | |
| Use bitfield macros for DAC IQ sampling | 用位域宏(FIELD_GET/FIELD_PREP)替代裸移位,提高可读性 |
技术意义:rtw8822c 的 DAC IQ 校准是发射链路的关键校准流程(补偿 I/Q 不平衡)。原实现用 u32/int 混用导致符号位扩展错误——IQ 样本在硬件中是 12-bit 有符号数,无符号处理会将负值误判为大幅正值,导致校准结果偏差、EVM 劣化。该系列从 v2 到 v6 迭代 5 轮,是本周迭代最深的系列。v4 起根据 Ping-Ke Shih review 精简为 3 片并改用位域宏。
USB 传输优化(Mehmet Fide v3→v5)
| |
|---|
usb: do not log transfers lost to a mode switch | 模式切换(如 P2P→STA)导致传输丢失时不再刷日志——这是正常行为而非错误 |
usb: route bmc frames via the high queue only for DTIM delivery | BMC(Broadcast/Multicast)帧路由优化:仅 DTIM 投递时走 high queue,其余走 AC 队列,避免 AP 模式 multicast 吞吐骤降 |
BMC 路由细节:这是典型的 USB WiFi 性能问题——低端 USB 芯片只有 1 条 EP,所有流量复用一个队列。原实现把所有 BMC 帧都塞 high queue 等 DTIM,导致非 DTIM 周期的 multicast 延迟数倍。v3→v5 迭代中根据测试反馈调整了队列选择逻辑。
4.2 mt76 系列(MediaTek — 24 封)
mt7925(Wi-Fi 7):
| | | |
|---|
zero the whole testmode command buffer | | | |
report an error for an unknown testmode query id | | | |
accept testmode replies shorter than the buffer | | | |
remove wm2_complete_mask from mt7925_irq_map | | IRQ map 中多余的 wm2_complete_mask 位 | |
Fix MCU command timeouts during module unload | | | |
Remove useless condition | | | |
mt7921 / mt792x:
| | | |
|---|
fix deadlock on 6 GHz association | | 6GHz 关联死锁——6GHz(仅 SAE)关联流程与扫描路径互斥锁嵌套 | |
fix array-index-out-of-bounds in mt7921_load_clc() | | CLC(Country Location Code)固件加载时数组越界 | |
skip unknown CLC firmware records | | | |
fix UAF in SDIO TX path when out of memory | | SDIO TX 路径 OOM 时 UAF | |
fix memory leak in USB TX path | | | |
Fixes: a01a222ab4aa (mt7928: Fix TX hang due to DMASHDL setting error) | | | |
mt7996(Wi-Fi 7 AP):
| | |
|---|
program a link again if the driver holds it | | MLO 场景驱动持有链路时重新编程,修复链路状态不一致 |
take over connection monitoring | | |
skip HW_RRO for sub-64 window BlockAck sessions | | 小窗口 BlockAck 跳过硬件 RX 重排序,减少重排序延迟 |
mt76 通用:
| | |
|---|
check the owner of a remain-on-channel request | | RoC 请求归属检查——并发扫描/外发帧时避免冲突 |
clear offchannel state if a scan has no channel to restore | | 扫描无频道可恢复时清理 offchannel 状态 |
account non-AQL frames per peer rather than per link | | 非 AQL 帧按 peer 而非 link 记账(MLO) |
do not tear down BSS/STA state for monitor vifs | | monitor 接口不应拆除 BSS/STA 状态 |
mt7601u: add support for AP and P2P concurrent modes | | |
simplify mt7915_sys_recovery_set() | | |
固件:JB Tsai 提交 linux-firmware: update firmware for MT7925 WiFi device — 新固件修复已知问题。
本周 mt76 亮点:mt7921 的 6GHz 关联死锁与 mt792x 的 SDIO OOM UAF 两件 CRITICAL 修复;Felix Fietkau 的 mt7996 offchannel/RoC 系列修复提升 AP 并发稳定性。
4.3 mwifiex / nxpwifi(Marvell/NXP — 12 封)🔒
mwifiex 安全加固(Doruk Tan Ozturk + Pengpeng Hou):
| | |
|---|
bound the pairwise-cipher OUI walk to the IE length | 成对密码 OUI 遍历越界——解析 RSN IE 时未限制 OUI 遍历范围 | |
validate HT/VHT capability and operation IE lengths | | |
validate scan response extents | | |
nxpwifi 固件下载加固(Linmao Li):
| |
|---|
wait for the wakeup timer before the adapter is freed | |
free the aggregation buffer when the RA list disappears | |
zero the channel statistics array | |
validate the length of the VDLL indication event | |
reject VDLL blocks that do not fit the command buffer | |
release the firmware when the VDLL image does not fit | |
VDLL(Vendor Download)路径:nxpwifi 通过 VDLL 下载固件。Linmao Li 的 6 片系列全面加固下载路径——长度校验、缓冲区边界、资源释放,是本周单作者最大的安全系列。
4.4 ath12k 系列(Qualcomm — 6 封)
| | | |
|---|
fix DMA unwind for ext MSDU descriptor retry | | 外部 MSDU 描述符重试时 DMA 回滚不完整——重试路径未全部 unmap,DMA 泄漏/双 map | |
fix MLO 4-way handshake timeout on QCC2072 | | QCC2072 MLO 4-way 握手超时 | |
fix stale skb pointers after aligned TX payload shift | | 对齐 TX payload 移位后 skb 指针过期——移位后未更新 skb->data 引用 | |
fix truncated TX buffer DMA address in MSDU ext descriptor | | MSDU 扩展描述符中 TX 缓冲 DMA 地址被截断——高地址位丢失 | |
wmi: Complete regulatory update for dropped events | | | |
use kernel types instead of userspace stdint types | | | |
truncated DMA address 细节:MSDU 扩展描述符的 DMA 地址字段是 48-bit,原代码用 32-bit 变量传递导致高 16 位被截断。当设备 DMA 超过 4GB 地址空间(如大内存 x86/arm64 平台)时,TX 数据写入错误地址——这是典型的 >4GB 内存平台 bug。
4.5 ath11k / ath9k / brcm / rtw89 / iwlwifi
ath11k(3 封):
| | |
|---|
fix locking problem in ath11k_dp_rx_tid_del_func() | | |
fix QCN6122 UNII-3 channels 149-165 disabled | | QCN6122 芯片 UNII-3 信道被错误禁用 |
fix reg_info_store leak in ath11k_service_ready_ext_event() | | reg_info_store |
ath9k(3 封):
| | |
|---|
use rcu_dereference_bh() for sta->rates in ath_merge_ratetbl() | | 速率合并路径 RCU 解引用错误(应 BH 变体) |
validate USB RX stream lengths before copying | | |
reject short WMI command responses | | |
brcm(3 封):
| | | |
|---|
brcmsmac: fix UAF in brcms_free_timer() | | | |
brcmfmac: schedule bus reset when device is unresponsive after wake | | | |
brcmfmac: initialize SDIO data work before cleanup | | SDIO data work 初始化顺序(cleanup 前必须就绪) | |
rtw89(5 封):
| | |
|---|
usb: Avoid crash with dynamically added device ID | | |
debug: fix off-by-one in rtw89_ppdu_str() | | |
Don't return default channel from disabled bands | | |
iwlwifi(2 封):fix spelling mistakes(Mouri/Mouri Vance)— 拼写清理。
其他(libertas_tf / bcma / rtlwifi / dt-bindings):
| | |
|---|
libertas_tf: fix UAF in lbtf_free_adapter() | | |
bcma: propagate bcma_register_devices() error to host probe | | |
rtlwifi: remove dead mimo_ps handling | | |
dt-bindings: wifi: WL1251 DT schema + marvell,ignore-regulatory-hint | | DT schema 转换、regulatory 提示忽略标志(WRT3200ACM) |
五、安全 / 健壮性关注
| | | |
|---|
| | | mt792x SDIO、brcmsmac、libertas_tf、LED trigger、mwifiex |
| | | mwifiex OUI/IE、mt7921 CLC、hwsim alpha2、ath9k USB |
| | | |
| | | |
| | | ath11k reg_info、mt792x USB |
| | | cfg80211 AP_VLAN station 添加 |
| | | |
| | | |
重点关注:
- 1. 🔴 cfg80211 AP_VLAN station 认证绕过(Slawomir Stepien)
- 2. 🔴 mt76 mt7921 6GHz 关联死锁 + mt792x SDIO OOM UAF(Mikhail Gavrilov / Eason Lai)
- 3. 🔴 ath12k MSDU 描述符 DMA 地址截断(>4GB 内存平台,Baochen Qiang)
- 4. 🟠 mwifiex RSN IE OUI 遍历越界(Doruk Tan Ozturk)
- 5. 🟠 rtw88 RTL8723BS SDIO 支持系列(luka.gejak)
七、总结
本周 wireless 活跃度平稳(219 封、147 真补丁、110 系列)。三个主线:
- 1. rtw88 双线推进(59 封):RTL8723BS SDIO 芯片完整支持预备(v5 6 片)+ rtw8822c DAC IQ 校准重构(v6 迭代收官),两大系列都接近合入
- 2. mt76 多维修复(24 封):6GHz 关联死锁(CRITICAL)、SDIO OOM UAF(CRITICAL)、testmode 缓冲加固(3 片)、mt7996 offchannel 并发修复
- 3. 80211 协议栈安全加固(6 封):cfg80211 station 添加路径 3 片安全修复(含 AP_VLAN 认证绕过)、mac80211 LED UAF
技术亮点:
- • cfg80211 AP_VLAN station 注入路径认证绕过修复(实际可利用)
- • ath12k MSDU 描述符 48-bit DMA 地址截断修复(>4GB 平台)
- • rtw88 RTL8723BS SDIO 流控(OQT 信用额度/TX 背压)实现
- • nxpwifi VDLL 固件下载 6 片全面加固
- • mwifiex RSN IE OUI 遍历越界修复
安全面:本周约 35 件修复/安全类补丁,其中 6 件 UAF、6 件越界、3 件 DMA、1 件认证绕过为 HIGH 以上。建议优先关注 cfg80211 AP_VLAN 修复、mt7921 死锁、ath12k DMA 截断的合入情况。