← CVE announcements

SECURITY ANNOUNCEMENT

CVE-2026-99235

2 November 2026

create_field_var_hist() creates a histogram on the matched event to supply a field variable, and records it on the target so it can be torn down later:

hist_data = find_compatible_hist(target_hist_data, file); ... /* Save the compatible histogram information */ var_hist->hist_data = hist_data;

hist_data is not the histogram it creates. It is one that was already there, whose keys the new one copies. The saved pointer has a single user, unregister_field_var_hists(), which runs when the target is removed:

file = hist_data->field_var_hists[i]->hist_data->event_file;

find_compatible_hist() matches on keys alone, so it can pick one with no variables of its own. check_var_refs() then returns false and the user can remove it while the target still points at it:

BUG: KASAN: slab-use-after-free in event_hist_trigger_free+0x2b2/0x320 Read of size 8 at addr ffff8880093b90e0 by task init/1

Freed by task 1: kfree+0x154/0x420 event_hist_trigger_free+0x1d5/0x320 event_hist_trigger_parse+0x35f3/0x69e0 trigger_process_regex+0x1a6/0x250

Save the event file instead. It is all the dereference ever wanted, and it does not go away when the user removes a trigger.

Introduced

4.17 02205a6752f223779a1b0e9e8ffacbea6e717851

Fixed releases

5.10.273 a6165126b1a1b26342b55be6eb6ee23af8756aba

5.15.224 173914501b97236d7ea7dc2af7f30feddd4e1436

6.1.191 ac815a379644b2ad5008a009a3516ada31b5dd82

6.12.115 7a111ba0d1b74c99bc8f096565dc71945f694254

6.18.60 3609ada3c12cecfb0ae5ee82ef4f86c5f18a2dea

6.6.161 8b307d64a60548e4a74cb746f74d7ed4bd49965e

7.2.14 9631dbccd3c649b567a5aafffea6b00634183997

7.3.1 7cafc82e6153f05a221be678cd649d02e06ba909

View source announcement ↗