{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2023-53589", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-10-04T15:40:38.478Z", "datePublished": "2025-10-04T15:44:04.047Z", "dateUpdated": "2026-08-05T09:14:59.706Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T09:14:59.706Z" }, "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." } ], "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." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/wireless/intel/iwlwifi/mvm/nvm.c" ], "versions": [ { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "e519a404a5bbba37693cb10fa61794a5fce4fd9b", "status": "affected", "versionType": "git" }, { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "d0d39bed9e95f27a246be91c5929254ac043ed30", "status": "affected", "versionType": "git" }, { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "05ad5a4d421ce65652fcb24d46b7e273130240d6", "status": "affected", "versionType": "git" }, { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "557ba100d8cf3661ff8d71c0b4a2cba8db555ec2", "status": "affected", "versionType": "git" }, { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "c176f03350954b795322de0bfe1d7b514db41f45", "status": "affected", "versionType": "git" }, { "version": "dcaf9f5ecb6f395152609bdc40660d9b593dca63", "lessThan": "682b6dc29d98e857e6ca4bbc077c7dc2899b7473", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/wireless/intel/iwlwifi/mvm/nvm.c" ], "versions": [ { "version": "4.1", "status": "affected" }, { "version": "0", "lessThan": "4.1", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.244", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.181", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.113", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.30", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.3.4", "lessThanOrEqual": "6.3.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.4", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "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" } ] } ] } ], "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" } ], "title": "wifi: iwlwifi: mvm: don't trust firmware n_channels", "x_generator": { "engine": "bippy-1.2.0" } } } }