CVE-2026-80936
High · 7.8CVSS
7.8
EPSS
0.2%
Published
Sep 11, 2026
CISA due date
—
Cloudanix analysis
A bug in certain Linux Wi-Fi drivers can let a regular user crash the computer or gain full control by interfering with power-saving features during device shutdown.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Failure to cancel a delayed work item (mlo_pm_work) during device teardown leaves a timer that attempts to schedule work on a destroyed workqueue after the mt7925 driver instance is freed, resulting in a use-after-free condition in the kernel workqueue subsystem.
Why it matters to the business
Local users on affected systems can trigger kernel warnings, crashes, or potential privilege escalation, leading to denial of service or full system compromise on Linux devices using mt7925 Wi-Fi hardware.
How an attack unfolds
An attacker with local access triggers multi-link power-save setup to arm the 5-second delayed work, then forces rapid device teardown (e.g., via interface down or driver unload) before the timer fires; the subsequent callback attempts to queue onto the already-released workqueue, causing the use-after-free.
How to fix it
Update to a Linux kernel containing the fix that adds an mt7925 stop callback to cancel mlo_pm_work before calling mt792x_stop; backport the patch to any distribution kernels still shipping the vulnerable mt7925 driver.
How to confirm the fix worked
Confirm the presence of the stop callback that explicitly cancels mlo_pm_work, verify no 'workqueue: cannot queue mt7925_mlo_pm_work' warnings appear during repeated interface up/down cycles, and test that the module can be unloaded cleanly without timer callbacks.
Typical attack path
- Obtain local shell or user context on the target Linux system
- Trigger mt7925 multi-link power-save setup to queue the delayed work
- Force driver or interface teardown within the 5-second window
- Trigger the stale timer to execute the freed workqueue callback
- Leverage resulting memory corruption for privilege escalation or crash
How to detect it
Search kernel logs and dmesg for 'workqueue: cannot queue mt7925_mlo_pm_work' and 'WARNING: kernel/workqueue.c' entries around mt7925 teardown events; inspect crash dumps for use-after-free signatures in workqueue code paths.
What your security team should do
- Prioritize kernel updates for all systems exposing mt7925 hardware
- Restrict local user access on multi-user or shared Linux workstations until patched
- Monitor kernel logs for workqueue warnings related to mt7925_mlo_pm_work
- Apply the fix in any custom or downstream kernels before deployment
The record
In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7925: cancel mlo_pm_work on stop mt7925 queues mlo_pm_work with a 5 second delay during multi-link power-save setup and never cancels it on the stop path. If the device is torn down inside that window, the work outlives the teardown and its timer fires afterwards, trying to queue onto the workqueue that is already gone: workqueue: cannot queue mt7925_mlo_pm_work [mt7925_common] on wq phy0 WARNING: kernel/workqueue.c:2283 at __queue_work+0x59/0xa0, CPU#1: swapper/1/0 call_timer_fn+0x2a/0x140 __run_timers+0x203/0x330 run_timer_softirq+0x86/0xf0 mt7921 already has its own stop callback, so add one for mt7925 that cancels the work before calling mt792x_stop(). mt7925_ops backs both the PCIe and USB drivers, so this covers both.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|