Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-64586— wifi: brcmfmac: drain bus_reset work on device removal

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会开源的一款操作系统内核。 Linux kernel存在安全漏洞,该漏洞源于brcmfmac驱动在设备移除时未排空bus_reset工作项,可能导致释放后重用。

CVSS 8.8 · High EPSS 0.25% · P16

Possible ATT&CK Techniques 1 AI

T1059 · Command and Scripting Interpreter

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 4684997d9eea29380000e062755aa6d368d789a3< 9dfb09cb0abbf92a06f93e0715e163aa188a84da affected
4684997d9eea29380000e062755aa6d368d789a3< 4824e3bcc68f8d678b409039d1bb48c7b5ea73dc affected
4684997d9eea29380000e062755aa6d368d789a3< 61127dd20920bf28460a1609aabb0dafa2f54fac affected
4684997d9eea29380000e062755aa6d368d789a3< c268331845ee00dbdbccb000826bb612dff2bee7 affected
4684997d9eea29380000e062755aa6d368d789a3< e3815d1ffbb9be4f1605ddc3b427557893461683 affected
4684997d9eea29380000e062755aa6d368d789a3< 02d378828af8bb74f6c2f4d2bee3c77cf16c861e affected
4684997d9eea29380000e062755aa6d368d789a3< 177a25be1195f8bdc6160ba5f1a5699f7041c985 affected
4684997d9eea29380000e062755aa6d368d789a3< 43b25879f004c98defa2776bedc6ca4763c51945 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-64586

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
wifi: brcmfmac: drain bus_reset work on device removal
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: drain bus_reset work on device removal brcmf_fw_crashed() and the debugfs "reset" entry both schedule drvr->bus_reset, whose callback recovers drvr through container_of() and dereferences it. The removal path frees drvr (brcmf_free -> wiphy_free) without draining the work, so a bus_reset callback pending or running during removal can outlive drvr. Cancellation cannot live in brcmf_detach() or brcmf_free(): the work callback reaches teardown through the bus .reset op (PCIe brcmf_pcie_reset -> brcmf_detach; SDIO brcmf_sdio_bus_reset -> brcmf_sdiod_remove -> brcmf_free), so cancelling there would wait for the running work and deadlock. Add a per-bus mutex (bus_reset_lock) and route all arming through brcmf_bus_schedule_reset(), which under the lock skips when the bus is marked removing. Each bus remove entry calls brcmf_bus_cancel_reset_work(), which under the same lock sets removing and cancels the work. Holding the mutex across cancel_work_sync() makes the set-removing + drain step atomic. Every producer reaches the arming path from process context -- the PCIe firmware-halt notification runs in the threaded IRQ handler (brcmf_pcie_isr_thread) and the SDIO hostmail path runs from the data workqueue -- so the mutex is taken only in sleepable contexts. Where applicable the remove entry first stops the firmware-crash producer: on PCIe mask the mailbox and synchronize_irq; on SDIO unregister the bus interrupt and cancel the data worker, which also reports firmware halts through brcmf_fw_crashed(). The mutex is initialized at bus allocation. The SDIO suspend power-off path frees drvr through the same brcmf_sdiod_remove() and takes the same lock; resume re-allows the work only on a successful re-probe. Also guard brcmf_fw_crashed() against a NULL bus_if/drvr: it can fire before brcmf_attach() wires up drvr, and it dereferences drvr (bphy_err/brcmf_dev_coredump) before reaching the arming gate. The bus_reset work is shared across buses, so the drain is applied to every remove path: PCIe (the .reset op introduced by the Fixes commit), SDIO (arms the same work through brcmf_fw_crashed()), and USB (via the debugfs "reset" entry). cancel_work_sync() drains a running or pending bus_reset work item before removal frees drvr, and patch 1/2 makes the scratch-buffer release safe when reset teardown has already released those DMA buffers. This patch fixes the lifetime of the bus_reset work item itself. It does not attempt to address the separate, pre-existing lifetime of the asynchronous firmware completion started by the PCIe reset path. That callback needs its own lifetime/ownership protocol and is being tracked separately. This issue was found by an in-house static analysis tool.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会开源的一款操作系统内核。 Linux kernel存在安全漏洞,该漏洞源于brcmfmac驱动在设备移除时未排空bus_reset工作项,可能导致释放后重用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 4684997d9eea29380000e062755aa6d368d789a3 ~ 9dfb09cb0abbf92a06f93e0715e163aa188a84da -
Linux Linux 5.2 -

II. Public POCs for CVE-2026-64586

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-64586

登录查看更多情报信息。

Patches & Fixes for CVE-2026-64586 (8)

Same Patch Batch · Linux · 2026-08-06 · 22 CVEs total

CVE-2026-64597 9.8 CRITICAL smb: client: fix double-free in SMB2_close() replay
CVE-2026-64598 8.8 HIGH smb/client: Fix error code in smb2_aead_req_alloc()
CVE-2026-64584 7.8 HIGH usb: gadget: f_midi: cancel pending IN work before freeing the midi object
CVE-2026-64585 7.8 HIGH can: esd_usb: kill anchored URBs before freeing netdevs
CVE-2026-64588 7.8 HIGH fuse-uring: fix data races on ring->ready
CVE-2026-64583 7.8 HIGH usb: gadget: udc: bdc: free IRQ and drain func_wake_notify before teardown
CVE-2026-64601 7.8 HIGH ALSA: us144mkii: capture_urb_complete: redundant usb_anchor_urb corrupts anchor list on ea
CVE-2026-64599 7.8 HIGH crypto: amlogic - avoid double cleanup in meson_crypto_probe()
CVE-2026-64587 7.0 HIGH net: ethernet: arc: emac: quiesce interrupts before requesting IRQ
CVE-2026-68480 x86/bugs: Make Safe-RET robust against interrupt injection
CVE-2026-64604 KVM: VMX: Grab vmcs12 on CR8 interception update iff vCPU is in guest mode
CVE-2026-64603 platform/x86: intel-hid: Protect ACPI notify handler against recursion
CVE-2026-64602 iio: adc: spear: Initialize completion before requesting IRQ
CVE-2026-64596 libfs: set SB_I_NOEXEC and SB_I_NODEV by default in init_pseudo()
CVE-2026-64595 HID: hid-lenovo-go: cancel cfg_setup work in hid_go_cfg_remove()
CVE-2026-64593 btrfs: do not trim a device which is not writeable
CVE-2026-64594 usb: gadget: f_fs: initialize reset_work at allocation time
CVE-2026-64592 riscv: mm: Unconditionally sfence.vma for spurious fault
CVE-2026-64591 iommu/vt-d: Avoid WARNING in sva unbind path
CVE-2026-64590 dma-buf/udmabuf: skip redundant cpu sync to fix cacheline EEXIST warning

Showing top 20 of 22 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-64586

No comments yet


Leave a comment