Description
In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix overreads in ath12k_wmi_process_csa_switch_count_event() There is no policy entry for WMI_TAG_PDEV_CSA_SWITCH_COUNT_STATUS_EVENT, so the parse infrastructure does not enforce a minimum length for the event struct. Additionally, the num_vdevs field is taken directly from firmware and used as a loop bound over the vdev_ids array without checking that it fits within the TLV payload. Either condition can cause an out-of-bounds read. Add a TLV policy entry for WMI_TAG_PDEV_CSA_SWITCH_COUNT_STATUS_EVENT so the parse infrastructure enforces a minimum length for the fixed-size event struct. Add a helper ath12k_wmi_tlv_data_len() to recover the payload length of a parsed TLV from the header preceding its data pointer. Use it in ath12k_wmi_process_csa_switch_count_event() to bound num_vdevs before the loop. Compile tested only.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
d889913205cf7ebda905b1e62c5867ed4e39f6c2 to < d4aec20f3a84634171c139ab2e02bb2e5a5c756baffectedd889913205cf7ebda905b1e62c5867ed4e39f6c2 to < 24f7cdabea9f7ab95dbd6d8bc9ac6ec48d96a7e5affectedd889913205cf7ebda905b1e62c5867ed4e39f6c2 to < 23bed4ef132c55c9016f0c6122c8b8ba2efa2353affectedd889913205cf7ebda905b1e62c5867ed4e39f6c2 to < bf97c9d5123859a07848462539153176db029f3aaffectedd889913205cf7ebda905b1e62c5867ed4e39f6c2 to < 878654eb78c6aa0ff585baf1376567c775ca28ecaffected
Linux Linux
Default version status: affected
6.3affected0 to < 6.3unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/d4aec20f3a84634171c139ab2e02bb2e5a5c756b ↗
- https://git.kernel.org/stable/c/24f7cdabea9f7ab95dbd6d8bc9ac6ec48d96a7e5 ↗
- https://git.kernel.org/stable/c/23bed4ef132c55c9016f0c6122c8b8ba2efa2353 ↗
- https://git.kernel.org/stable/c/bf97c9d5123859a07848462539153176db029f3a ↗
- https://git.kernel.org/stable/c/878654eb78c6aa0ff585baf1376567c775ca28ec ↗