{"id":"CVE-2026-68405","state":"PUBLISHED","title":"wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock\n\nieee80211_do_stop() removes AP_VLAN packets from the parent AP\nps->bc_buf while holding ps->bc_buf.lock with IRQs disabled. It then\ncalls ieee80211_free_txskb() before dropping the lock.\n\nieee80211_free_txskb() is not just a passive SKB release. For SKBs with\nTX status state it can report a dropped frame through cfg80211/nl80211,\nand that path can reach netlink tap transmit. This is the same reason\nthe pending queue cleanup in ieee80211_do_stop() already unlinks SKBs\nunder the queue lock and frees them after IRQ state is restored.\n\nThe buggy scenario involves two paths, with each column showing the\norder within that path:\n\nAP_VLAN management TX:             AP_VLAN stop:\n1. attach ACK-status state         1. clear the running state\n2. queue a multicast SKB on        2. take ps->bc_buf.lock with IRQs\n   parent ps->bc_buf                  disabled\n                                   3. unlink the AP_VLAN SKB\n                                   4. call ieee80211_free_txskb()\n\nUnlink matching AP_VLAN SKBs from ps->bc_buf under the existing lock,\nbut move them to a local free queue. Drop the lock and restore IRQ state\nbefore calling ieee80211_free_txskb().\n\nWARNING: kernel/softirq.c:430 at __local_bh_enable_ip","publishedAt":"2026-08-10T12:04:25.241Z","updatedAt":"2026-08-19T16:34:57.265Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"0d2619e708e2ef02ba1c91642ea261d3f19d8f9a","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"659a81b62a61440b85e02c09903be861ae7679e5","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"aa01ef0ebbc3289154229ef58e65baf289eb9789","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"962f755a47d7ec3bbf6c709697d7f4c5f798441d","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"a424985c3ef2a87ce6057a853e18d0c441a86be8","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"4b8abf43bf34791c99d99dc3be13f897adefc461","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"f3858d5b1432098c1936e03d6e03dd0e33facf60","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/iface.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.9","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","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":["net/mac80211/iface.c"]}],"references":["https://git.kernel.org/stable/c/0d2619e708e2ef02ba1c91642ea261d3f19d8f9a","https://git.kernel.org/stable/c/659a81b62a61440b85e02c09903be861ae7679e5","https://git.kernel.org/stable/c/aa01ef0ebbc3289154229ef58e65baf289eb9789","https://git.kernel.org/stable/c/be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef","https://git.kernel.org/stable/c/962f755a47d7ec3bbf6c709697d7f4c5f798441d","https://git.kernel.org/stable/c/a424985c3ef2a87ce6057a853e18d0c441a86be8","https://git.kernel.org/stable/c/4b8abf43bf34791c99d99dc3be13f897adefc461","https://git.kernel.org/stable/c/f3858d5b1432098c1936e03d6e03dd0e33facf60"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68405.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68405","state":"PUBLISHED","datePublished":"2026-08-10T12:04:25.241Z","dateUpdated":"2026-08-19T16:34:57.265Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.390Z"},"containers":{"cna":{"title":"wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock\n\nieee80211_do_stop() removes AP_VLAN packets from the parent AP\nps->bc_buf while holding ps->bc_buf.lock with IRQs disabled. It then\ncalls ieee80211_free_txskb() before dropping the lock.\n\nieee80211_free_txskb() is not just a passive SKB release. For SKBs with\nTX status state it can report a dropped frame through cfg80211/nl80211,\nand that path can reach netlink tap transmit. This is the same reason\nthe pending queue cleanup in ieee80211_do_stop() already unlinks SKBs\nunder the queue lock and frees them after IRQ state is restored.\n\nThe buggy scenario involves two paths, with each column showing the\norder within that path:\n\nAP_VLAN management TX:             AP_VLAN stop:\n1. attach ACK-status state         1. clear the running state\n2. queue a multicast SKB on        2. take ps->bc_buf.lock with IRQs\n   parent ps->bc_buf                  disabled\n                                   3. unlink the AP_VLAN SKB\n                                   4. call ieee80211_free_txskb()\n\nUnlink matching AP_VLAN SKBs from ps->bc_buf under the existing lock,\nbut move them to a local free queue. Drop the lock and restore IRQ state\nbefore calling ieee80211_free_txskb().\n\nWARNING: kernel/softirq.c:430 at __local_bh_enable_ip"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"0d2619e708e2ef02ba1c91642ea261d3f19d8f9a","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"659a81b62a61440b85e02c09903be861ae7679e5","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"aa01ef0ebbc3289154229ef58e65baf289eb9789","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"962f755a47d7ec3bbf6c709697d7f4c5f798441d","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"a424985c3ef2a87ce6057a853e18d0c441a86be8","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"4b8abf43bf34791c99d99dc3be13f897adefc461","versionType":"git"},{"version":"397a7a24ef8c2967a3e8090013f9c54714110c48","status":"affected","lessThan":"f3858d5b1432098c1936e03d6e03dd0e33facf60","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mac80211/iface.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.9","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","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":["net/mac80211/iface.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/0d2619e708e2ef02ba1c91642ea261d3f19d8f9a"},{"url":"https://git.kernel.org/stable/c/659a81b62a61440b85e02c09903be861ae7679e5"},{"url":"https://git.kernel.org/stable/c/aa01ef0ebbc3289154229ef58e65baf289eb9789"},{"url":"https://git.kernel.org/stable/c/be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef"},{"url":"https://git.kernel.org/stable/c/962f755a47d7ec3bbf6c709697d7f4c5f798441d"},{"url":"https://git.kernel.org/stable/c/a424985c3ef2a87ce6057a853e18d0c441a86be8"},{"url":"https://git.kernel.org/stable/c/4b8abf43bf34791c99d99dc3be13f897adefc461"},{"url":"https://git.kernel.org/stable/c/f3858d5b1432098c1936e03d6e03dd0e33facf60"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:34:57.265Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"6.6.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"6.12.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"6.18.42"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"7.1.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.9","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}