tracing: Take the reference before publishing the named histogram trigger
- 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.112, 6.16, 6.18.53, 7.2.7
- 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: tracing: Take the reference before publishing the named histogram trigger event_hist_trigger_named_init() puts the trigger on the global named_triggers list and only then takes the reference on the trigger it shares its histogram with: data->ref++; save_named_trigger(data->named_data->name, data); ret = event_hist_trigger_init(data->named_data); if (ret < 0) { kfree(data->cmd_ops); data->cmd_ops = &trigger_hist_cmd; } return ret; event_hist_trigger_init() fails when alloc_hist_pad() cannot allocate, and nothing takes the trigger back off the list on the way out. event_hist_trigger_parse() frees it, and the next lookup by name reads the freed object: BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0 Read of size 8 at addr ffff888009346860 by task init/1 find_named_trigger+0xac/0xc0 hist_register_trigger+0xc1/0xa00 event_hist_trigger_parse+0x3146/0x6af0 event_trigger_write+0xce/0x160 Freed by task 67: kfree+0x154/0x420 trigger_kthread_fn+0xfd/0x160 Do the reference first and publish once it has succeeded, so that nothing which can fail runs after the trigger becomes findable.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From ac7ab38c271ba2edaeb0dc35b200ec13339776ae · fixed in e5c5dad169fb569161d3eed6c3f6a59e65db1830; From e53a8dcd36b9ebc9229450eb594ae20e0b2ae0fd · fixed in b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8; From 7ab0fc61ce73040f89b12d76a8279995ec283541 · fixed in 2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b; From 7ab0fc61ce73040f89b12d76a8279995ec283541 · fixed in 91c15cdda6033e2439f5975b938754152f3d6e38; From 7ab0fc61ce73040f89b12d76a8279995ec283541 · fixed in 0fe23b8eaba0d3372c66b7b31204408da0715edc; From 6.6.94 · fixed in 6.6.160; From 6.12.34 · fixed in 6.12.112; From 6.15.3 · fixed in 6.16
- Linux Linux
6.16
- KernelLinux
fixed in 6.6.160; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.53; From 6.16.0 · fixed in 7.2.7