wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work()
3Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackepss 0.1%
exploitation probability
0.1%top 97% of all CVEs
observed exploitation
nono source reports it
In the Linux kernel, the following vulnerability has been resolved:
wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work()
When the mt7915 pci chip is detaching, the mt7915_crash_data is
released in mt7915_coredump_unregister(). However, the work item
dump_work may still be running or pending, leading to UAF bugs
when the already freed crash_data is dereferenced again in
mt7915_mac_dump_work().
The race condition can occur as follows:
CPU 0 (removal path) | CPU 1 (workqueue)
mt7915_pci_remove() | mt7915_sys_recovery_set()
mt7915_unregister_device() | mt7915_reset()
mt7915_coredump_unregister() | queue_work()
vfree(dev->coredump.crash_data) | mt7915_mac_dump_work()
| crash_data-> // UAF
Fix this by ensuring dump_work is properly canceled before
the crash_data is deallocated. Add cancel_work_sync() in
mt7915_unregister_device() to synchronize with any pending
or executing dump work.
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/1146d0946b5358fad24812bd39d68f31cd40cc34https://git.kernel.org/stable/c/21ce6d867867645fff0ef657be18f61d9f39dcd8https://git.kernel.org/stable/c/6b7cbb13c838cf2a5f2e7be0e96fe15250087939https://git.kernel.org/stable/c/6d5202409467d621b6d1dfd7fc7dadb997fe66d2https://git.kernel.org/stable/c/e6856af8a22a8e2cd18241a465ed00c2301b3a5e