# CVE-2026-99061: wifi: brcmfmac: fix P2P device removal race in brcmf_detach()

CVE-2026-99061 is fixed in 11 products on 1 platform, first by DEBIAN-CVE-2026-99061, released October 24, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-99061
- Priority: Routine
- CVSS: 4.1 (Moderate)
- EPSS: 0.0018
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Oct 23, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-99061

## Description

In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix P2P device removal race in brcmf_detach()  When the driver is removed while the user space process that created the P2P device (e.g. wpa_supplicant) is still exiting, the P2P device interface is removed twice and the kernel crashes.  The two paths are:   - wpa_supplicant, on exit, sends NL80211_CMD_DEL_INTERFACE for the P2P    device. nl80211_del_interface() holds RTNL and the wiphy mutex and    calls brcmf_p2p_del_vif(), which disables discovery and waits up to    1.5 s for BRCMF_E_IF_DEL. Then it calls brcmf_remove_interface(),    which unregisters the wdev and frees the vif and the ifp.   - brcmf_detach() sets the bus down, so BRCMF_E_IF_DEL never arrives,    and calls brcmf_remove_interface(ifp, false) for the same ifp.    brcmf_p2p_ifp_removed() reads ifp->vif and then blocks on    rtnl_lock(). When brcmf_p2p_del_vif() releases RTNL, it calls    cfg80211_unregister_wdev() on the wdev that was already unregistered    and freed.  The second list_del_rcu() of wdev->list faults on LIST_POISON2:    brcmfmac: brcmf_p2p_del_vif delete P2P vif   brcmfmac: brcmf_p2p_deinit_discovery enter   brcmfmac: brcmf_p2p_del_vif P2P: GO_NEG_PHASE status cleared   brcmfmac: brcmf_detach Enter   brcmfmac: brcmf_bus_change_state 1 -> 0   brcmfmac: brcmf_remove_interface Enter, bsscfgidx=1, ifidx=0   brcmfmac: brcmf_del_if Enter, bsscfgidx=1, ifidx=0   brcmfmac: brcmf_p2p_ifp_removed P2P: device interface removed   [1.5 s later, brcmf_p2p_del_vif() timed out]   brcmfmac: brcmf_remove_interface Enter, bsscfgidx=1, ifidx=0   brcmfmac: brcmf_del_if Enter, bsscfgidx=1, ifidx=0   brcmfmac: brcmf_p2p_ifp_removed P2P: device interface removed   Unable to handle kernel paging request at virtual address dead000000000122   Internal error: Oops: 96000044 [#1] PREEMPT_RT SMP   pc : _cfg80211_unregister_wdev+0x6c/0x264 [cfg80211]   Call trace:    _cfg80211_unregister_wdev+0x6c/0x264 [cfg80211]    cfg80211_unregister_wdev+0x10/0x1c [cfg80211]    brcmf_p2p_ifp_removed+0x84/0xb0 [brcmfmac]    brcmf_remove_interface+0x1f4/0x254 [brcmfmac]    brcmf_detach+0x88/0x180 [brcmfmac]    brcmf_sdio_remove+0x90/0x7b0 [brcmfmac]    brcmf_sdiod_remove+0x20/0xa0 [brcmfmac]    brcmf_ops_sdio_remove+0xbc/0x12c [brcmfmac]    sdio_bus_remove+0x38/0x144    device_release_driver_internal+0x1e8/0x2c0    device_release_driver+0x14/0x20    brcmf_sdio_bus_remove+0x2c/0x40 [brcmfmac]    brcmf_fwvid_unregister_vendor+0xd8/0x170 [brcmfmac]    __exit_compat+0x18/0x418 [brcmfmac_cyw]    __arm64_sys_delete_module+0x1ac/0x244  The log was taken with debug=0x406 on an i.MX 8M Plus board with a CYW55513 (Sona IF513) on SDIO. The driver is the Ezurio backport of brcmfmac from v6.18.22 on a 5.4-rt kernel. The code involved is the same in mainline.  To reproduce:    1. Start wpa_supplicant on wlan0 and let it associate. It creates the      P2P device (iw dev shows "type P2P-device").   2. Stop wpa_supplicant and remove the driver without waiting for      wpa_supplicant to exit:         kill $(pidof wpa_supplicant)        rmmod brcmfmac_cyw brcmfmac  The crash is reproducible on that board.  For the interface without a netdev (the P2P device), take RTNL and the wiphy mutex in brcmf_detach() before reading iflist, and remove it with locked=true. If brcmf_p2p_del_vif() runs first, brcmf_detach() finds the slot empty. If brcmf_detach() runs first, nl80211 does not find the wdev any more. The interfaces with a netdev are removed as before, because brcmf_del_if() takes RTNL on its own for the primary interface.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | kernel-64kb sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-azure sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-default sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-default-base sles 15.7 | 6.4.0-150700.53.90.1.150700.17.51.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-docs sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-livepatch-SLE15-SP7_Update_24 sles 15.7 | 1-150700.15.3.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-obs-build sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-source sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-syms sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | kernel-zfcpdump sles 15.7 | 6.4.0-150700.53.90.1 | [SUSE-SU-2026:5091-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-5091-1.md) | Nov 7, 2026 |
| Linux | linux Debian 13.5 (trixie) | 6.12.113-1 | [DEBIAN-CVE-2026-99061](https://patchblox.com/security/data/fix/linux/debian-cve-2026-99061.md) | Oct 24, 2026 |
| Linux | linux Debian 14 | 7.2.11-1 | [DEBIAN-CVE-2026-99061](https://patchblox.com/security/data/fix/linux/debian-cve-2026-99061.md) | Oct 24, 2026 |

---

Data as of 2026-11-09T07:25:28Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
