---
id: CVE-2026-74554
title: 'wifi: ath12k: fix out-of-bounds clear_bit in ath12k_mac_dp_peer_cleanup()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  wifi: ath12k: fix out-of-bounds clear_bit in ath12k_mac_dp_peer_cleanup()

  ath12k_mac_dp_peer_cleanup() clears the ML peer ID slot on the
  free_ml_peer_id_map bitmap by …
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ee16dcf573d5e3283fda601dd4bca6bc52251017 <
    234b5cb81e6fcc1e3b31b13deff66130be55f36e
  - >-
    Linux >= ee16dcf573d5e3283fda601dd4bca6bc52251017 <
    47abd2ca281531deee38a3b3770d885e270e9fc9
  - Linux 7.0
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T18:59:58.796220Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T19:05:55.415Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-74554'
references:
  - url: 'https://git.kernel.org/stable/c/234b5cb81e6fcc1e3b31b13deff66130be55f36e'
  - url: 'https://git.kernel.org/stable/c/47abd2ca281531deee38a3b3770d885e270e9fc9'
tags:
  - cve.org
epss: 0.0034
epssPercentile: 0.25943
ingestedAt: '2026-10-16T19:46:24.344Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

wifi: ath12k: fix out-of-bounds clear_bit in ath12k_mac_dp_peer_cleanup()

ath12k_mac_dp_peer_cleanup() clears the ML peer ID slot on the
free_ml_peer_id_map bitmap by indexing it with dp_peer->peer_id. That is
wrong: dp_peer->peer_id for an MLO peer always carries the
ATH12K_PEER_ML_ID_VALID bit (BIT(13)), so clear_bit() is invoked with
index >= 0x2000, which is far outside the bitmap of ATH12K_MAX_MLO_PEERS
(256) bits and corrupts memory adjacent to ah->free_ml_peer_id_map. The
intended bitmap entry also never gets cleared, so subsequent
ath12k_peer_ml_alloc() calls eventually run out of IDs.

The ID without the VALID bit is what ath12k_peer_ml_alloc() returned and
is stored in ahsta->ml_peer_id. Use that instead.

While there, also reset ahsta->ml_peer_id to ATH12K_MLO_PEER_ID_INVALID so
the bitmap and ahsta->ml_peer_id stay in sync.

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

## Affected

- `Linux >= ee16dcf573d5e3283fda601dd4bca6bc52251017 < 234b5cb81e6fcc1e3b31b13deff66130be55f36e`
- `Linux >= ee16dcf573d5e3283fda601dd4bca6bc52251017 < 47abd2ca281531deee38a3b3770d885e270e9fc9`
- `Linux 7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
