CVE-2026-74366 in Linux信息

摘要

由 VulDB • 2026-08-15

在 Linux 内核中,已修复以下漏洞:

wifi: ath12k: 修复 change_sta_links 中对未就绪链路(unready link)的空指针解引用问题

_ieee80211_set_active_links() 会为每个新添加的链路调用 _ieee80211_link_use_channel(),并在失败时触发 WARN_ON_ONCE()。该调用使用了 assign_on_failure=true,这允许 mac80211 在驱动程序发生错误时继续运行;但是,当 mac80211 层面的信道验证失败(例如组合检查、DFS 或没有可用的无线电设备)时,永远不会到达 drv_assign_vif_chanctx()。由于 ath12k_mac_vdev_create() 仅从该路径调用,因此 arvif->is_created 保持为 false,且对于失败的链路,arvif->ar 仍为 NULL。

随后的 drv_change_sta_links() 调用会进入 ath12k_mac_op_change_sta_links(),后者在检查链路是否就绪之前,会为损坏的链路分配 arsta 并设置 ahsta->links_map |= BIT(link_id)。当 vdev 从未被创建时,仅跳过 station_add(),但链路仍保留在 links_map 中。

任何后续遍历 links_map 并在未进行 NULL 检查的情况下解引用 arvif->ar 的操作都会导致崩溃。两个观察到的示例分别是:断开连接时在 ath12k_mac_ml_station_remove() 中的空指针解引用,以及 wpa_supplicant 安装 PTK 密钥时在 ath12k_mac_op_set_key() 中的空指针解引用。

BUG: Unable to handle kernel NULL pointer dereference at 0x00000000 pc : ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]
Call trace: ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]
ath12k_mac_op_sta_state+0xb60/0x1720 [ath12k]
drv_sta_state+0x100/0xbd8 [mac80211]
__sta_info_destroy_part2+0x148/0x178 [mac80211]
ieee80211_set_disassoc+0x500/0x678 [mac80211]

BUG: Unable to handle kernel NULL pointer dereference at 0x00000000 pc : ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]
Call trace: ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]
drv_set_key+0x70/0x100 [mac80211]
ieee80211_key_enable_hw_accel+0x78/0x260 [mac80211]
ieee80211_add_key+0x16c/0x2ac [mac80211]
nl80211_new_key+0x138/0x280 [cfg80211]

通过在调用 ath12k_mac_alloc_assign_link_sta() 之前检查 arvif->is_created 来修复此问题。这可以防止损坏的链路进入 links_map,从而保护所有后续遍历该位图的运算。arvif->is_created 在所有错误路径上的一致性由前一个补丁确保。

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Once again VulDB remains the best source for vulnerability data.

来源

Want to stay up to date on a daily basis?

Enable the mail alert feature now!