{"id":"CVE-2023-53589","state":"PUBLISHED","title":"wifi: iwlwifi: mvm: don't trust firmware n_channels","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: iwlwifi: mvm: don't trust firmware n_channels\n\nIf the firmware sends us a corrupted MCC response with\nn_channels much larger than the command response can be,\nwe might copy far too much (uninitialized) memory and\neven crash if the n_channels is large enough to make it\nrun out of the one page allocated for the FW response.\n\nFix that by checking the lengths. Doing a < comparison\nwould be sufficient, but the firmware should be doing\nit correctly, so check more strictly.","publishedAt":"2025-10-04T15:44:04.047Z","updatedAt":"2026-10-15T21:41:31.264Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"e519a404a5bbba37693cb10fa61794a5fce4fd9b","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"d0d39bed9e95f27a246be91c5929254ac043ed30","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"05ad5a4d421ce65652fcb24d46b7e273130240d6","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"557ba100d8cf3661ff8d71c0b4a2cba8db555ec2","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"c176f03350954b795322de0bfe1d7b514db41f45","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"682b6dc29d98e857e6ca4bbc077c7dc2899b7473","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/intel/iwlwifi/mvm/nvm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.1","versionType":"semver"},{"version":"5.4.244","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.181","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.113","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.30","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.3.4","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/intel/iwlwifi/mvm/nvm.c"]}],"references":["https://git.kernel.org/stable/c/e519a404a5bbba37693cb10fa61794a5fce4fd9b","https://git.kernel.org/stable/c/d0d39bed9e95f27a246be91c5929254ac043ed30","https://git.kernel.org/stable/c/05ad5a4d421ce65652fcb24d46b7e273130240d6","https://git.kernel.org/stable/c/557ba100d8cf3661ff8d71c0b4a2cba8db555ec2","https://git.kernel.org/stable/c/c176f03350954b795322de0bfe1d7b514db41f45","https://git.kernel.org/stable/c/682b6dc29d98e857e6ca4bbc077c7dc2899b7473"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/53xxx/CVE-2023-53589.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53589","state":"PUBLISHED","datePublished":"2025-10-04T15:44:04.047Z","dateUpdated":"2026-10-15T21:41:31.264Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-10-04T15:40:38.478Z"},"containers":{"cna":{"title":"wifi: iwlwifi: mvm: don't trust firmware n_channels","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: iwlwifi: mvm: don't trust firmware n_channels\n\nIf the firmware sends us a corrupted MCC response with\nn_channels much larger than the command response can be,\nwe might copy far too much (uninitialized) memory and\neven crash if the n_channels is large enough to make it\nrun out of the one page allocated for the FW response.\n\nFix that by checking the lengths. Doing a < comparison\nwould be sufficient, but the firmware should be doing\nit correctly, so check more strictly."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"e519a404a5bbba37693cb10fa61794a5fce4fd9b","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"d0d39bed9e95f27a246be91c5929254ac043ed30","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"05ad5a4d421ce65652fcb24d46b7e273130240d6","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"557ba100d8cf3661ff8d71c0b4a2cba8db555ec2","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"c176f03350954b795322de0bfe1d7b514db41f45","versionType":"git"},{"version":"dcaf9f5ecb6f395152609bdc40660d9b593dca63","status":"affected","lessThan":"682b6dc29d98e857e6ca4bbc077c7dc2899b7473","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/intel/iwlwifi/mvm/nvm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.1","versionType":"semver"},{"version":"5.4.244","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.181","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.113","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.30","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.3.4","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/intel/iwlwifi/mvm/nvm.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e519a404a5bbba37693cb10fa61794a5fce4fd9b"},{"url":"https://git.kernel.org/stable/c/d0d39bed9e95f27a246be91c5929254ac043ed30"},{"url":"https://git.kernel.org/stable/c/05ad5a4d421ce65652fcb24d46b7e273130240d6"},{"url":"https://git.kernel.org/stable/c/557ba100d8cf3661ff8d71c0b4a2cba8db555ec2"},{"url":"https://git.kernel.org/stable/c/c176f03350954b795322de0bfe1d7b514db41f45"},{"url":"https://git.kernel.org/stable/c/682b6dc29d98e857e6ca4bbc077c7dc2899b7473"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The vulnerable MCC update path is driven over the air — the firmware derives the MCC from 802.11d country IEs in received beacons and notifies the driver via MCC_CHUB_UPDATE_CMD, so an attacker within WiFi range selects the input that drives this code and, in the firmware-compromise case (a real over-the-air class for WiFi NICs), controls the malformed response itself. This matches the adjacent scoring used for equivalent unvalidated-WiFi-firmware-event bugs such as the brcmfmac IF event validation CVE.\nAC:L - Triggering is fully deterministic — a single n_channels field inconsistent with the packet length is enough, with no race to win, no memory-layout grooming, and no victim state dependency. The path executes automatically on every regulatory/MCC update.\nPR:N - No credentials or association are required; iwl_mvm_rx_chub_update_mcc() explicitly bails out when the interface is associated, so the vulnerable path runs precisely in the unauthenticated, pre-association state, and also runs unconditionally during driver init.\nUI:N - Regulatory/MCC updates are processed automatically on beacon reception and at interface bring-up with no user action whatsoever.\nS:U - The out-of-bounds read and write both occur in kernel memory within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - n_channels is unbounded, so the copy reads arbitrarily far past the one-page FW response buffer into adjacent kernel memory, and the copied uninitialized data is turned into regulatory rules that any unprivileged user can read back via NL80211_CMD_GET_REG.\nI:H - resp_len is an int while n_channels * sizeof(__le32) is size_t, so n_channels around 0x40000000 truncates the allocation to a few bytes while the subsequent memcpy() length stays at ~4 GB, producing a heap out-of-bounds write that destroys large amounts of kernel memory.\nA:H - The oversized copy runs off the allocated RX page and the undersized destination buffer, causing a guaranteed kernel oops/panic — exactly the crash the commit message describes."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T09:14:59.706Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"5.4.244"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"5.10.181"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"5.15.113"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"6.1.30"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"6.3.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1","versionEndExcluding":"6.4"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2023-53589","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-15T21:35:44.946339Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:41:31.264Z"}}]}}}