Linux Kernel bis 6.6.159/6.12.112/6.18.56/7.2.10 brcmfmac brcmf_detach Race Condition

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
4.0$0-$5k2.03-

Zusammenfassunginfo

Eine Schwachstelle wurde in Linux Kernel bis 6.6.159/6.12.112/6.18.56/7.2.10 gefunden. Sie wurde als problematisch eingestuft. Dies betrifft die Funktion brcmf_detach der Komponente brcmfmac. Durch Manipulieren mit unbekannten Daten kann eine Race Condition-Schwachstelle ausgenutzt werden. Diese Schwachstelle wird als CVE-2026-99061 gehandelt. Der Angriff muss lokal erfolgen. Es ist kein Exploit verfügbar. Es wird empfohlen, die betroffene Komponente zu aktualisieren.

Detailsinfo

In Linux Kernel bis 6.6.159/6.12.112/6.18.56/7.2.10 wurde eine problematische Schwachstelle entdeckt. Es geht um die Funktion brcmf_detach der Komponente brcmfmac. Mit der Manipulation mit einer unbekannten Eingabe kann eine Race Condition-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-362. Auswirkungen hat dies auf die Verfügbarkeit. Die Zusammenfassung von CVE lautet:

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.

Bereitgestellt wird das Advisory unter git.kernel.org. Die Verwundbarkeit wird seit dem 25.09.2026 als CVE-2026-99061 geführt. Sie gilt als leicht auszunutzen. Der Angriff muss lokal angegangen werden. Um eine Ausnutzung durchzusetzen, muss eine erweiterte Authentisierung umgesetzt werden. Eine Ausnutzung erfordert, dass das Opfer eine spezifische Handlung durchführt. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht.

Ein Aktualisieren auf die Version 6.6.160, 6.12.113, 6.18.57 oder 7.2.11 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches 7b79131e357c4786765b20a994ad40d4d35f2163/2e0c8c60a11b3177e7432c71d41249e276a0825f/eef16a74ff8ed2a838d6bb862bb2c7783fce7466/47ca6395a1d91545cc9403f9218bc61be941a0c3/08a3f02fea636e97a7422d1512f76dacdb5b0887 lösen. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 4.2
VulDB Meta Temp Score: 4.0

VulDB Base Score: 4.2
VulDB Temp Score: 4.0
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Race Condition
CWE: CWE-362
CAPEC: 🔒
ATT&CK: 🔒

Physisch: Teilweise
Lokal: Ja
Remote: Teilweise

Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 6.6.160/6.12.113/6.18.57/7.2.11
Patch: 7b79131e357c4786765b20a994ad40d4d35f2163/2e0c8c60a11b3177e7432c71d41249e276a0825f/eef16a74ff8ed2a838d6bb862bb2c7783fce7466/47ca6395a1d91545cc9403f9218bc61be941a0c3/08a3f02fea636e97a7422d1512f76dacdb5b0887

Timelineinfo

25.09.2026 CVE zugewiesen
23.10.2026 +28 Tage Advisory veröffentlicht
23.10.2026 +0 Tage VulDB Eintrag erstellt
23.10.2026 +0 Tage VulDB Eintrag letzte Aktualisierung

Quelleninfo

Hersteller: kernel.org

Advisory: git.kernel.org
Status: Bestätigt

CVE: CVE-2026-99061 (🔒)
GCVE (CVE): GCVE-0-2026-99061
GCVE (VulDB): GCVE-100-425845

Eintraginfo

Erstellt: 23.10.2026 15:40
Anpassungen: 23.10.2026 15:40 (59)
Komplett: 🔍
Cache ID: 216::103

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Do you want to use VulDB in your project?

Use the official API to access entries easily!