{"api_version":"1","generated_at":"2026-10-20T15:39:21+00:00","cve":"CVE-2026-98824","urls":{"html":"https://cve.report/CVE-2026-98824","api":"https://cve.report/api/cve/CVE-2026-98824.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-98824","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-98824"},"summary":{"title":"wifi: mac80211: validate TX status rate metadata","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: validate TX status rate metadata\n\nminstrel_ht_tx_status() converts the HT/VHT rate reported in a TX status\ninto a group and rate index and uses those to index the minstrel_ht rate\ntables.  The existing validation only checked that an entry was present\nand had tries recorded; it did not check that the reported MCS, spatial\nstream count and bandwidth are representable by the tables, so malformed\nmetadata passed to minstrel_ht_get_stats() or\nminstrel_ht_ri_get_stats() could be used as an out-of-bounds index.\n\nValidate the rate metadata in the common TX status path instead of only\nin minstrel_ht, since the values are used by more than rate control.\nThe legacy ieee80211_tx_rate array and the rate_info based entries are\nsanitized in ieee80211_tx_status_ext() and ieee80211_tx_rate_update()\nbefore any consumer runs: an entry that does not describe a valid rate\nfor its encoding is dropped.  minstrel_ht keeps the checks that depend\non its own tables, i.e. the supported number of spatial streams, the MCS\ngroup size and the supported bandwidths.\n\nThis does not take away the driver's responsibility to report sane\nvalues, it only prevents a single bad report from corrupting mac80211\nstate.  No WARN_ON() is added: with panic_on_warn a driver bug would\notherwise turn into a denial of service.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-18 16:17:36","updated_at":"2026-10-19 10:19:46"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/b1961a61ab6fbe11f16f7f9b64c57a9908c6c3a8","name":"https://git.kernel.org/stable/c/b1961a61ab6fbe11f16f7f9b64c57a9908c6c3a8","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6bdcdb31318c10e6369cff8e5b32c37397e98091","name":"https://git.kernel.org/stable/c/6bdcdb31318c10e6369cff8e5b32c37397e98091","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98824","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98824","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected a5f69d94d8e239b48299abdd836840b7447866ab b1961a61ab6fbe11f16f7f9b64c57a9908c6c3a8 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected a5f69d94d8e239b48299abdd836840b7447866ab 6bdcdb31318c10e6369cff8e5b32c37397e98091 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3.3","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 3.3 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.10 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/mac80211/rc80211_minstrel_ht.c","net/mac80211/status.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"b1961a61ab6fbe11f16f7f9b64c57a9908c6c3a8","status":"affected","version":"a5f69d94d8e239b48299abdd836840b7447866ab","versionType":"git"},{"lessThan":"6bdcdb31318c10e6369cff8e5b32c37397e98091","status":"affected","version":"a5f69d94d8e239b48299abdd836840b7447866ab","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/mac80211/rc80211_minstrel_ht.c","net/mac80211/status.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"3.3"},{"lessThan":"3.3","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.10","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.10","versionStartIncluding":"3.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"3.3","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: validate TX status rate metadata\n\nminstrel_ht_tx_status() converts the HT/VHT rate reported in a TX status\ninto a group and rate index and uses those to index the minstrel_ht rate\ntables.  The existing validation only checked that an entry was present\nand had tries recorded; it did not check that the reported MCS, spatial\nstream count and bandwidth are representable by the tables, so malformed\nmetadata passed to minstrel_ht_get_stats() or\nminstrel_ht_ri_get_stats() could be used as an out-of-bounds index.\n\nValidate the rate metadata in the common TX status path instead of only\nin minstrel_ht, since the values are used by more than rate control.\nThe legacy ieee80211_tx_rate array and the rate_info based entries are\nsanitized in ieee80211_tx_status_ext() and ieee80211_tx_rate_update()\nbefore any consumer runs: an entry that does not describe a valid rate\nfor its encoding is dropped.  minstrel_ht keeps the checks that depend\non its own tables, i.e. the supported number of spatial streams, the MCS\ngroup size and the supported bandwidths.\n\nThis does not take away the driver's responsibility to report sane\nvalues, it only prevents a single bad report from corrupting mac80211\nstate.  No WARN_ON() is added: with panic_on_warn a driver bug would\notherwise turn into a denial of service."}],"providerMetadata":{"dateUpdated":"2026-10-19T09:26:17.090Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/b1961a61ab6fbe11f16f7f9b64c57a9908c6c3a8"},{"url":"https://git.kernel.org/stable/c/6bdcdb31318c10e6369cff8e5b32c37397e98091"}],"title":"wifi: mac80211: validate TX status rate metadata","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-98824","datePublished":"2026-10-18T15:49:16.650Z","dateReserved":"2026-09-25T10:25:14.372Z","dateUpdated":"2026-10-19T09:26:17.090Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-18 16:17:36","lastModifiedDate":"2026-10-19 10:19:46","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"98824","Ordinal":"1","Title":"wifi: mac80211: validate TX status rate metadata","CVE":"CVE-2026-98824","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"98824","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: validate TX status rate metadata\n\nminstrel_ht_tx_status() converts the HT/VHT rate reported in a TX status\ninto a group and rate index and uses those to index the minstrel_ht rate\ntables.  The existing validation only checked that an entry was present\nand had tries recorded; it did not check that the reported MCS, spatial\nstream count and bandwidth are representable by the tables, so malformed\nmetadata passed to minstrel_ht_get_stats() or\nminstrel_ht_ri_get_stats() could be used as an out-of-bounds index.\n\nValidate the rate metadata in the common TX status path instead of only\nin minstrel_ht, since the values are used by more than rate control.\nThe legacy ieee80211_tx_rate array and the rate_info based entries are\nsanitized in ieee80211_tx_status_ext() and ieee80211_tx_rate_update()\nbefore any consumer runs: an entry that does not describe a valid rate\nfor its encoding is dropped.  minstrel_ht keeps the checks that depend\non its own tables, i.e. the supported number of spatial streams, the MCS\ngroup size and the supported bandwidths.\n\nThis does not take away the driver's responsibility to report sane\nvalues, it only prevents a single bad report from corrupting mac80211\nstate.  No WARN_ON() is added: with panic_on_warn a driver bug would\notherwise turn into a denial of service.","Type":"Description","Title":"wifi: mac80211: validate TX status rate metadata"}]}}}