wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.91, 6.18.33, 7.0.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 · fixed in 533b1a9fa0128c75e40dd2d2c38a32b4e660741f; From 878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 · fixed in 180182a3f23ff79430a32ca2c4c1885368ceab48; From 878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 · fixed in aa4a31cd89f4fde5043ac613fe0e27014a60a60b; From 878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 · fixed in 188e10f9ea3109d23c6b7643aa6ec2f5cb0faa6d; From 878161d5d4a469a6ef7f3fb4fe9f676bc508ee99 · fixed in c8f62f73bbced3a79894655bdb0b625462d956fc
- Linux Linux
6.4
- KernelLinux
From 6.4.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.91; From 6.13.0 · fixed in 6.18.33; From 6.19.0 · fixed in 7.0.10