wifi: brcmsmac: fix UAF in brcms_free_timer()
- 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 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- 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: brcmsmac: fix UAF in brcms_free_timer() brcms_free_timer() calls brcms_del_timer() which uses the non-synchronous cancel_delayed_work() to cancel the timer's underlying delayed work. If the work callback (_brcms_timer) is already running, cancel_delayed_work() returns false without waiting, and brcms_free_timer() proceeds to kfree(t) while the callback still accesses t through container_of(). Add an explicit cancel_delayed_work_sync() after brcms_del_timer() to guarantee that any in-flight callback has completed before the timer structure is freed.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 10eeb0b29fd7f52487c9ae573e8d79c210a0095d; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 74acccc928851f69184271832d690607877122af; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 050d2486e8ed2c0a23b87249ccd23e8072721391; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 856dabd5f2617efb23c043be9e1b22a9e6e97c41; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 2a4841ff0b74b495cddd31ae324e922217fc2f13; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 1edb3ddd261e973a4d577c0547e63bfa25a8170d; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 777cb6bba59e875b16a1d8897a483a5fecfcd5d2; From 5b435de0d786869c95d1962121af0d7df2542009 · fixed in 1eeca1d5e0920fbdad6449768fd2d4364e714180
- Linux Linux
3.2
- KernelLinux
From 3.2.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 8
git.kernel.org
- stable/c/10eeb0b29fd7f52487c9ae573e8d79c210a0095d
- stable/c/74acccc928851f69184271832d690607877122af
- stable/c/050d2486e8ed2c0a23b87249ccd23e8072721391
- stable/c/856dabd5f2617efb23c043be9e1b22a9e6e97c41
- stable/c/2a4841ff0b74b495cddd31ae324e922217fc2f13
- stable/c/1edb3ddd261e973a4d577c0547e63bfa25a8170d
- stable/c/777cb6bba59e875b16a1d8897a483a5fecfcd5d2
- stable/c/1eeca1d5e0920fbdad6449768fd2d4364e714180