Description (CNA)
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.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected ac7ab38c271ba2edaeb0dc35b200ec13339776ae before e5c5dad169fb569161d3eed6c3f6a59e65db1830; affected e53a8dcd36b9ebc9229450eb594ae20e0b2ae0fd before b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8; affected 7ab0fc61ce73040f89b12d76a8279995ec283541 before 2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b; affected 7ab0fc61ce73040f89b12d76a8279995ec283541 before 91c15cdda6033e2439f5975b938754152f3d6e38; affected 7ab0fc61ce73040f89b12d76a8279995ec283541 before 0fe23b8eaba0d3372c66b7b31204408da0715edc; affected 740dab2338f70d93aa8235db5a9541d846d7b21c; affected 6.6.94 before 6.6.160; affected 6.12.34 before 6.12.112; affected 6.15.3 before 6.16 |
| Linux / Linux | affected 6.16; unaffected 0 before 6.16; unaffected 6.6.160 through 6.6.*; unaffected 6.12.112 through 6.12.*; unaffected 6.18.53 through 6.18.*; unaffected 7.2.7 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/e5c5dad169fb569161d3eed6c3f6a59e65db1830
- https://git.kernel.org/stable/c/b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8
- https://git.kernel.org/stable/c/2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b
- https://git.kernel.org/stable/c/91c15cdda6033e2439f5975b938754152f3d6e38
- https://git.kernel.org/stable/c/0fe23b8eaba0d3372c66b7b31204408da0715edc