---
id: CVE-2026-68405
title: 'wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock

  ieee80211_do_stop() removes AP_VLAN packets from the parent AP
  ps->bc_buf while holding ps->bc_buf.lock with …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    0d2619e708e2ef02ba1c91642ea261d3f19d8f9a
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    659a81b62a61440b85e02c09903be861ae7679e5
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    aa01ef0ebbc3289154229ef58e65baf289eb9789
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    962f755a47d7ec3bbf6c709697d7f4c5f798441d
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    a424985c3ef2a87ce6057a853e18d0c441a86be8
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    4b8abf43bf34791c99d99dc3be13f897adefc461
  - >-
    Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 <
    f3858d5b1432098c1936e03d6e03dd0e33facf60
  - Linux 3.9
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T16:48:43.826413Z'
published: '2026-08-10'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T16:55:15.546Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-68405'
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'
tags:
  - cve.org
epss: 0.0022
epssPercentile: 0.12599
ingestedAt: '2026-11-06T18:00:12.610Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock

ieee80211_do_stop() removes AP_VLAN packets from the parent AP
ps->bc_buf while holding ps->bc_buf.lock with IRQs disabled. It then
calls ieee80211_free_txskb() before dropping the lock.

ieee80211_free_txskb() is not just a passive SKB release. For SKBs with
TX status state it can report a dropped frame through cfg80211/nl80211,
and that path can reach netlink tap transmit. This is the same reason
the pending queue cleanup in ieee80211_do_stop() already unlinks SKBs
under the queue lock and frees them after IRQ state is restored.

The buggy scenario involves two paths, with each column showing the
order within that path:

AP_VLAN management TX:             AP_VLAN stop:
1. attach ACK-status state         1. clear the running state
2. queue a multicast SKB on        2. take ps->bc_buf.lock with IRQs
   parent ps->bc_buf                  disabled
                                   3. unlink the AP_VLAN SKB
                                   4. call ieee80211_free_txskb()

Unlink matching AP_VLAN SKBs from ps->bc_buf under the existing lock,
but move them to a local free queue. Drop the lock and restore IRQ state
before calling ieee80211_free_txskb().

WARNING: kernel/softirq.c:430 at __local_bh_enable_ip

## Affected

- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < 0d2619e708e2ef02ba1c91642ea261d3f19d8f9a`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < 659a81b62a61440b85e02c09903be861ae7679e5`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < aa01ef0ebbc3289154229ef58e65baf289eb9789`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < be9dfcb0654c1f6c0fce7ba2a909683bb6f1e0ef`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < 962f755a47d7ec3bbf6c709697d7f4c5f798441d`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < a424985c3ef2a87ce6057a853e18d0c441a86be8`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < 4b8abf43bf34791c99d99dc3be13f897adefc461`
- `Linux >= 397a7a24ef8c2967a3e8090013f9c54714110c48 < f3858d5b1432098c1936e03d6e03dd0e33facf60`
- `Linux 3.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
