Description
In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work() When the mt7996 pci chip is detaching, the mt7996_crash_data is released in mt7996_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 mt7996_mac_dump_work(). The race condition can occur as follows: CPU 0 (removal path) | CPU 1 (workqueue) mt7996_pci_remove() | mt7996_sys_recovery_set() mt7996_unregister_device() | mt7996_reset() mt7996_coredump_unregister() | queue_work() vfree(dev->coredump.crash_data) | mt7996_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 mt7996_unregister_device() to synchronize with any pending or executing dump work.
Affected products
- Linux / Linux878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 – 180182a3f23ff79430a32ca2c4c1885368ceab48
- Linux / Linux878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 – aa4a31cd89f4fde5043ac613fe0e27014a60a60b
- Linux / Linux878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 – 188e10f9ea3109d23c6b7643aa6ec2f5cb0faa6d
- Linux / Linux878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 – c8f62f73bbced3a79894655bdb0b625462d956fc
- Linux / Linux6.4 – 6.4
- Linux / Linux0 – 6.4
- Linux / Linux6.12.91 – 6.12.*
- Linux / Linux6.18.33 – 6.18.*
- Linux / Linux7.0.10 – 7.0.*
- Linux / Linux7.1 – *
References
- MISChttps://git.kernel.org/stable/c/180182a3f23ff79430a32ca2c4c1885368ceab48
- MISChttps://git.kernel.org/stable/c/aa4a31cd89f4fde5043ac613fe0e27014a60a60b
- MISChttps://git.kernel.org/stable/c/188e10f9ea3109d23c6b7643aa6ec2f5cb0faa6d
- MISChttps://git.kernel.org/stable/c/c8f62f73bbced3a79894655bdb0b625462d956fc