-

CVE-2026-98076

tracing/probes: Fix use-after-free on field name/type of events with multiple probes

In the Linux kernel, the following vulnerability has been resolved:

tracing/probes: Fix use-after-free on field name/type of events with multiple probes

The fields of a probe-based dynamic event (kprobe, uprobe, eprobe and
fprobe events) are created in traceprobe_define_arg_fields() by handing
the probe_arg name/type strings to trace_define_field(), which only
stores the pointers without copying. Those strings are owned by the
trace_probe and are freed when that probe is removed.

An event can have several probes attached. The field list is defined
only once, by the first probe that registers the event, but it is kept
alive by any surviving sibling probe. Deleting just that first probe by
symbol -

  # primary A: fields are defined from A's args
  echo 'p:kprobes/ev vfs_read  a1=$arg1' >  kprobe_events
  # append B: shares A's event call
  echo 'p:kprobes/ev vfs_write a1=$arg1' >> kprobe_events
  # delete only A (matched by symbol), B survives
  echo '-:kprobes/ev vfs_read'           >> kprobe_events

frees A's args (trace_probe_cleanup() -> traceprobe_free_probe_arg()),
but trace_probe_unlink() keeps the trace_probe_event because the probe
list is not empty. The event call stays registered via B while its
fields now reference freed memory. Any field lookup then reads it, e.g.

  echo 'a1 == 1' > events/kprobes/ev/filter

  BUG: KASAN: slab-use-after-free in strcmp+0xa7/0xb0
  Call Trace:
   strcmp
   trace_find_event_field
   parse_pred
   process_preds
   create_filter
   apply_event_filter
   event_filter_write

field->name references parg->name (kstrdup'd, freed with the probe) and,
for array arguments, field->type references parg->fmt (kmalloc'd, freed
with the probe) - the scalar type otherwise points at the static
fmttype rodata, which is safe.

Have traceprobe_define_arg_fields() duplicate the name and type strings
and anchor the copies on the trace_probe_event, which embeds the event
call and outlives every individual probe; trace_probe_event_free()
releases them.

The reproducer above triggers reliably; the field lookup and the delete
both run under event_mutex, so this is a dangling reference after
removal rather than a race.

The issue was found by the autokbug dynamic kernel fuzzer at Tencent
Yunding Lab.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 38305e1b8b1ec27eef8f2d4e461e3b6c8624d494
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 6d6118c17bc791594cbfd9cc4936ee21073b894a
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < a2510fcaad92b09b34574c97e8356234c6a84a9a
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 9379e193826f23876daccb3351fab89c87084ba3
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 68ae584169c7a41fc9bc4677c1d368983cf44b21
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 411c9080a776577664531b4f7d3ee53b7a747ba8
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 178ff2e011e21fbebdf57f5d58a408fe59136d82
Status affected
Version ca89bc071d5e4e981dcc52e0ca90f4500d332e42
Version < 86b7a239ec6b14a7544200ede85474c6f5526049
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.4
Status affected
Version 0
Version < 5.4
Status unaffected
Version <= 5.10.*
Version 5.10.271
Status unaffected
Version <= 5.15.*
Version 5.15.222
Status unaffected
Version <= 6.1.*
Version 6.1.189
Status unaffected
Version <= 6.6.*
Version 6.6.158
Status unaffected
Version <= 6.12.*
Version 6.12.111
Status unaffected
Version <= 6.18.*
Version 6.18.53
Status unaffected
Version <= 7.2.*
Version 7.2.7
Status unaffected
Version <= *
Version 7.3-rc2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.2% 0.088
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/68ae584169c7a41fc9bc4677c1d368983cf44b21
https://git.kernel.org/stable/c/411c9080a776577664531b4f7d3ee53b7a747ba8
https://git.kernel.org/stable/c/178ff2e011e21fbebdf57f5d58a408fe59136d82
https://git.kernel.org/stable/c/86b7a239ec6b14a7544200ede85474c6f5526049
https://git.kernel.org/stable/c/38305e1b8b1ec27eef8f2d4e461e3b6c8624d494
https://git.kernel.org/stable/c/6d6118c17bc791594cbfd9cc4936ee21073b894a
https://git.kernel.org/stable/c/9379e193826f23876daccb3351fab89c87084ba3
https://git.kernel.org/stable/c/a2510fcaad92b09b34574c97e8356234c6a84a9a