wifi: ath6kl: fix use-after-free in aggr_reset_state()
- 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.266, 5.15.217, 6.1.184, 6.6.151, 6.12.103, 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: ath6kl: fix use-after-free in aggr_reset_state() The aggr_reset_state() function uses timer_delete() (non-synchronous) for the aggregation timer before proceeding to delete TID state and before the structure is freed by callers like aggr_module_destroy(). If the timer callback (aggr_timeout) is executing when aggr_reset_state() is called, the callback will continue to access aggr_conn fields like rx_tid[] and stat[] which may be freed immediately after by kfree(aggr_info->aggr_conn) in aggr_module_destroy(). Additionally, the timer callback can re-arm itself via mod_timer() while aggr_reset_state() is running, creating a more complex race condition. Use timer_delete_sync() instead to ensure any running timer callback has completed before returning.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in a1bac650b2d6b1baab1f3e78e2e007a6e2948dde; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in 2132a6db05846dd2318857d00e0c1291f9e41b29; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in 17ff29cd8dbc977c97788a5f7c011ec807b58242; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in 64af6534a085f49d6ed33338a19ab9cf0d0523c9; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in b5d618fd61b9069b4c0a6b487022dd3117ad5acc; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in 18965470d41e69d3fc10eb62afae29d10f4cdfd1; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in a3313111b5d9046af60b370c93eec105b27380c1; From bdcd81707973cf8aa9305337166f8ee842a050d4 · fixed in ba7debb4dd6427386862220e8335a53a4bfc235d
- Linux Linux
3.2
- KernelLinux
From 3.2.0 · fixed in 5.10.266; From 5.11.0 · fixed in 5.15.217; From 5.16.0 · fixed in 6.1.184; From 6.2.0 · fixed in 6.6.151; From 6.7.0 · fixed in 6.12.103; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6
References 8
git.kernel.org
- stable/c/a1bac650b2d6b1baab1f3e78e2e007a6e2948dde
- stable/c/2132a6db05846dd2318857d00e0c1291f9e41b29
- stable/c/17ff29cd8dbc977c97788a5f7c011ec807b58242
- stable/c/64af6534a085f49d6ed33338a19ab9cf0d0523c9
- stable/c/b5d618fd61b9069b4c0a6b487022dd3117ad5acc
- stable/c/18965470d41e69d3fc10eb62afae29d10f4cdfd1
- stable/c/a3313111b5d9046af60b370c93eec105b27380c1
- stable/c/ba7debb4dd6427386862220e8335a53a4bfc235d