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
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 to < 533b1a9fa0128c75e40dd2d2c38a32b4e660741faffected878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 to < 180182a3f23ff79430a32ca2c4c1885368ceab48affected878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 to < aa4a31cd89f4fde5043ac613fe0e27014a60a60baffected878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 to < 188e10f9ea3109d23c6b7643aa6ec2f5cb0faa6daffected878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 to < c8f62f73bbced3a79894655bdb0b625462d956fcaffected
Linux Linux
Default version status: affected
6.4affected0 to < 6.4unaffected6.6.160 to ≤ 6.6.*unaffected6.12.91 to ≤ 6.12.*unaffected6.18.33 to ≤ 6.18.*unaffected7.0.10 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/533b1a9fa0128c75e40dd2d2c38a32b4e660741f ↗
- https://git.kernel.org/stable/c/180182a3f23ff79430a32ca2c4c1885368ceab48 ↗
- https://git.kernel.org/stable/c/aa4a31cd89f4fde5043ac613fe0e27014a60a60b ↗
- https://git.kernel.org/stable/c/188e10f9ea3109d23c6b7643aa6ec2f5cb0faa6d ↗
- https://git.kernel.org/stable/c/c8f62f73bbced3a79894655bdb0b625462d956fc ↗