CVE-2026-68283
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
10/08/2026
Last modified:
17/08/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tracing: Fix use-after-free freeing trigger private data<br />
<br />
Commit 61d445af0a7c ("tracing: Add bulk garbage collection of freeing<br />
event_trigger_data") moved the kfree() of event_trigger_data to a kthread<br />
that runs tracepoint_synchronize_unregister() before freeing. That removed<br />
the synchronization the trigger .free callbacks used to get implicitly and<br />
inline from trigger_data_free().<br />
<br />
event_hist_trigger_free(), event_hist_trigger_named_free() and<br />
event_enable_trigger_free() free their satellite data (hist_data, cmd_ops,<br />
enable_data) right after trigger_data_free() returns. With the<br />
synchronization now deferred to the kthread, a concurrent tracepoint<br />
handler can still reach that data through the list_del_rcu()&#39;d trigger,<br />
causing a use-after-free.<br />
<br />
The histogram teardown must stay synchronous: remove_hist_vars() and<br />
unregister_field_var_hists() have to detach a synthetic event from the<br />
histogram before the trigger-removal write returns, otherwise a following<br />
command races in and the synthetic-event removal fails with -EBUSY, as the<br />
trigger-synthetic-eprobe.tc selftest catches. Make those callbacks wait<br />
with the correct barrier - tracepoint_synchronize_unregister(), matching<br />
the free kthread - before freeing.<br />
<br />
The enable trigger has no such synchronous requirement, and a blocking<br />
synchronize there would re-serialize the path that commit deliberately<br />
deferred. Give it an optional private_data_free() callback that the free<br />
kthread runs after its grace period, and free enable_data from there.
Impact
Base Score 3.x
8.80
Severity 3.x
HIGH



