{"id":"CVE-2026-80635","state":"PUBLISHED","title":"wifi: wcn36xx: fix OOB read from short trigger BA firmware response","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: wcn36xx: fix OOB read from short trigger BA firmware response\n\nThe firmware response length is only checked against sizeof(*rsp) (20\nbytes), but when candidate_cnt >= 1, a 22-byte candidate struct is read\nat buf + 20 without verifying the response contains it. This causes an\nout-of-bounds read of stale heap data, corrupting the BA session state.\n\nAdd validation that the response includes the candidate data.","publishedAt":"2026-08-28T06:48:49.637Z","updatedAt":"2026-08-29T06:21:35.535Z","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":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"04aba50212f9f274e1a726fb3873b5ce8da2d821","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"c07aa0534d50361183833e3803204044cf1d0476","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"d0b57bcd0dac6e2c9a3e474ec280e7db0b3edf35","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"af8f0ea1f0a3a5fb5ed2b8fed3f1501d644597ee","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"d0cafe6ed8d1f6d0097eda31d85f5760d4f359c2","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"b5e6f21923ca89d90256e7346301056f6502691e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/ath/wcn36xx/smd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","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/ath/wcn36xx/smd.c"]}],"references":["https://git.kernel.org/stable/c/04aba50212f9f274e1a726fb3873b5ce8da2d821","https://git.kernel.org/stable/c/c07aa0534d50361183833e3803204044cf1d0476","https://git.kernel.org/stable/c/d0b57bcd0dac6e2c9a3e474ec280e7db0b3edf35","https://git.kernel.org/stable/c/af8f0ea1f0a3a5fb5ed2b8fed3f1501d644597ee","https://git.kernel.org/stable/c/d0cafe6ed8d1f6d0097eda31d85f5760d4f359c2","https://git.kernel.org/stable/c/b5e6f21923ca89d90256e7346301056f6502691e"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80635.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80635","state":"PUBLISHED","datePublished":"2026-08-28T06:48:49.637Z","dateUpdated":"2026-08-29T06:21:35.535Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.777Z"},"containers":{"cna":{"title":"wifi: wcn36xx: fix OOB read from short trigger BA firmware response","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: wcn36xx: fix OOB read from short trigger BA firmware response\n\nThe firmware response length is only checked against sizeof(*rsp) (20\nbytes), but when candidate_cnt >= 1, a 22-byte candidate struct is read\nat buf + 20 without verifying the response contains it. This causes an\nout-of-bounds read of stale heap data, corrupting the BA session state.\n\nAdd validation that the response includes the candidate data."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"04aba50212f9f274e1a726fb3873b5ce8da2d821","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"c07aa0534d50361183833e3803204044cf1d0476","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"d0b57bcd0dac6e2c9a3e474ec280e7db0b3edf35","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"af8f0ea1f0a3a5fb5ed2b8fed3f1501d644597ee","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"d0cafe6ed8d1f6d0097eda31d85f5760d4f359c2","versionType":"git"},{"version":"16be1ac55944412e8d132b1db26f994b368c5742","status":"affected","lessThan":"b5e6f21923ca89d90256e7346301056f6502691e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/ath/wcn36xx/smd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","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/ath/wcn36xx/smd.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/04aba50212f9f274e1a726fb3873b5ce8da2d821"},{"url":"https://git.kernel.org/stable/c/c07aa0534d50361183833e3803204044cf1d0476"},{"url":"https://git.kernel.org/stable/c/d0b57bcd0dac6e2c9a3e474ec280e7db0b3edf35"},{"url":"https://git.kernel.org/stable/c/af8f0ea1f0a3a5fb5ed2b8fed3f1501d644597ee"},{"url":"https://git.kernel.org/stable/c/d0cafe6ed8d1f6d0097eda31d85f5760d4f359c2"},{"url":"https://git.kernel.org/stable/c/b5e6f21923ca89d90256e7346301056f6502691e"}],"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 bug is in parsing a WLAN firmware HAL response during TX block-ack setup; that path is reached only when an adjacent 802.11 peer drives AMPDU/BA negotiation over WiFi, not via remote IP or local syscalls.\nAC:L - An adjacent attacker can repeatedly send QoS data to a victim using wcn36xx to force ieee80211_start_tx_ba_session and wcn36xx_smd_trigger_ba, retrying until firmware returns a short TRIGGER_BA_RSP with candidate_cnt>=1.\nPR:N - Exploitation requires only wireless adjacency as an associated AP or client peer; no Linux account, capabilities, or user-namespace privileges on the victim host are needed.\nUI:N - The victim needs no deliberate action beyond normal WiFi use; the attacker triggers BA setup by sending traffic that causes automatic AMPDU aggregation on the victim interface.\nS:U - Impact is confined to the kernel WiFi driver and its firmware session state on the same host; it does not cross VM, container, or IOMMU security boundaries.\nC:H - When candidate_cnt>=1 but the response is only 20 bytes, the driver OOB-reads a 22-byte candidate from stale hal_buf data beyond the message, disclosing adjacent kernel buffer contents that may include prior HAL keying material.\nI:H - Stale OOB data is copied into ba_info and used as the block-ack starting sequence number for wcn36xx_smd_add_ba_session, corrupting BA session state and subsequent driver/firmware behavior.\nA:H - Corrupted block-ack parameters and malformed firmware/driver state can destabilize the WLAN subsystem, causing connection loss, firmware/driver errors, or kernel crashes under repeated attack."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-29T06:21:35.535Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.7","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}