GHSA-322G-PRC2-R52C
Vulnerability from github – Published: 2026-09-24 18:31 – Updated: 2026-09-24 18:31In the Linux kernel, the following vulnerability has been resolved:
wifi: ath11k: cap out-of-range rx MCS instead of leaving bogus rate
ath11k can receive HT/VHT/HE frames whose reported MCS is above the maximum that can be expressed in the corresponding mac80211 rate space (e.g. an HE frame reported with MCS 12, while HE tops out at MCS 11).
The frame itself is valid and decodes correctly, but for such a frame ath11k_dp_rx_h_rate() leaves rx_status->rate_idx set to the out-of-range value and never assigns rx_status->encoding, so it stays RX_ENC_LEGACY from the ath11k_dp_rx_h_ppdu() initialization. Once that frame reaches mac80211 it trips the rate sanity check and the frame is dropped with a splat:
ath11k_pci 0000:03:00.0: Received with invalid mcs in HE mode 12 WARNING: CPU: 0 PID: 0 at net/mac80211/rx.c:5433 ieee80211_rx_list+0xb0a/0xe90 [mac80211]
Dropping the frame would discard otherwise valid data, so instead cap the reported MCS to the maximum the rate space can express and deliver the frame. Set rx_status->encoding before the range check and assign rate_idx from the capped value, so a frame with an out-of-range MCS no longer leaves partial or bogus rate metadata behind. Also downgrade the logging level since they are not treated as invalid frames now. The only loss is that such a frame is reported as the capped MCS in the rx rate statistics.
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
{
"affected": [],
"aliases": [
"CVE-2026-93271"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-24T16:17:24Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath11k: cap out-of-range rx MCS instead of leaving bogus rate\n\nath11k can receive HT/VHT/HE frames whose reported MCS is above the\nmaximum that can be expressed in the corresponding mac80211 rate space\n(e.g. an HE frame reported with MCS 12, while HE tops out at MCS 11).\n\nThe frame itself is valid and decodes correctly, but for such a frame\nath11k_dp_rx_h_rate() leaves rx_status-\u003erate_idx set to the out-of-range\nvalue and never assigns rx_status-\u003eencoding, so it stays RX_ENC_LEGACY\nfrom the ath11k_dp_rx_h_ppdu() initialization. Once that frame reaches\nmac80211 it trips the rate sanity check and the frame is dropped with a\nsplat:\n\n ath11k_pci 0000:03:00.0: Received with invalid mcs in HE mode 12\n WARNING: CPU: 0 PID: 0 at net/mac80211/rx.c:5433 ieee80211_rx_list+0xb0a/0xe90 [mac80211]\n\nDropping the frame would discard otherwise valid data, so instead cap the\nreported MCS to the maximum the rate space can express and deliver the\nframe. Set rx_status-\u003eencoding before the range check and assign rate_idx\nfrom the capped value, so a frame with an out-of-range MCS no longer\nleaves partial or bogus rate metadata behind. Also downgrade the logging\nlevel since they are not treated as invalid frames now. The only loss is\nthat such a frame is reported as the capped MCS in the rx rate statistics.\n\nTested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41",
"id": "GHSA-322g-prc2-r52c",
"modified": "2026-09-24T18:31:25Z",
"published": "2026-09-24T18:31:25Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-93271"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/12b09e478aa7459b7893a695ef77682202f2da83"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/2bb2a778a487305bd378db5fd5014fbdce4ada2c"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/6ad04c3e2ec54bf5ec72c81afdd66318a116c539"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/a0b3e6f9645d88f387c4fea546048a91952cd4cd"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/a6b951f79e66fc8bd93a537ff1040fbfb567c8bf"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/b77bfe6e59b98dff3ccfcf9b45fc27e3db498626"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/ccbd20f2168f581d90265da1a925b9b6472a0b05"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/fb7b9a7209f839c17c66484dfdc84c9a23c6fd2f"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.