CVE-2026-89746 in Linuxinformazioni

Riassunto

di VulDB • 11/09/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

tracing: Correzione del use-after-free con trigger denominati aventi lo stesso nome

Quando due trigger di tipo "hist" su eventi diversi vengono registrati con il medesimo valore per l'opzione `name=`, il secondo riutilizza il primo come `named_data`. Entrambi vengono aggiunti a `tr->hist_vars` da `save_hist_vars()` durante la fase di analisi `event_hist_trigger_parse()`, poiché `save_hist_vars()` viene chiamata prima di `event_trigger_register()`, mentre il riuso del nome viene rilevato solo in un momento successivo, all'interno di `hist_register_trigger()`.

Nel ramo relativo ai dati denominati (`named-data`), `hist_register_trigger()` libera quindi l'oggetto `hist_data` del secondo histogram tramite `destroy_hist_data()`, ma non rimuove la relativa voce dalla lista `tr->hist_vars`, lasciando un puntatore dangling (dangling pointer) e causando una perdita della referenza al `trace_array` che esso detiene.

Un trigger "hist" successivo, che fa riferimento a una variabile, induce `find_var_file()` ad attraversare `tr->hist_vars` e a dereferenziare l'oggetto `hist_data` già liberato. Il bug è riproducibile da userspace scrivendo tre trigger di tipo hist su tracefs:

cd /sys/kernel/tracing echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_switch/trigger echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_process_fork/trigger echo 'hist:keys=common_pid:vals=$x' > events/sched/sched_process_exit/trigger

La terza scrittura provoca un panic del kernel:

BUG: KASAN: slab-use-after-free in find_var_file.part.0+0x272/0x290 Read of size 8 at addr ffff888001f8a0e0 by task sh/1 CPU: 1 UID: 0 PID: 1 Comm: sh Tainted: G D N Call Trace: find_var_file.part.0 find_event_var parse_atom parse_expr __create_val_field event_hist_trigger_parse trigger_process_regex event_trigger_write vfs_write ksys_write do_syscall_64 entry_SYSCALL_64_after_hwframe Allocated by task 1: event_hist_trigger_parse Freed by task 1: hist_register_trigger+0x618/0xa30 event_hist_trigger_parse The buggy address belongs to freed 2048-byte region Oops: general protection fault ... RIP: find_var_file.part.0 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

La correzione consiste nel rimuovere l'oggetto `hist_data` da `tr->hist_vars` e rilasciare la referenza al `trace_array` nel ramo dei dati denominati (`named-data`) di `hist_register_trigger()` prima della liberazione dell'oggetto `hist_data`.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Linux

Prenotare

11/09/2026

Divulgazione

11/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!