CVE-2026-99141 in Linux
Zusammenfassung
von VulDB • 29.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
tracing: Absturz in print_graph_function_event() beheben
tracing_set_tracer() weist den neu ausgewählten Tracer die Flags mit folgender Zuweisung zu:
tr->current_trace_flags = t->flags ? : t->tracer->flags;
Wenn der neue Tracer weder statische noch Standard-Flags definiert, wie dies bei hwlat, irqsoff oder wakeup der Fall ist, verfügt add_tracer() über keine pro Instanz kopierten Flags. Beide Operanden sind NULL, sodass tr->current_trace_flags ebenfalls NULL wird.
Der Ringpuffer wird beim Wechseln von Tracern nicht zurückgesetzt: Er wird in tracer_init() zurückgesetzt, nachdem current_trace_flags bereits zugewiesen wurde. Wenn der Puffer noch Funktion-Graph-Einträge des vorherigen Tracers enthält, führt das Ausdrucken eines dieser Einträge zur Dereferenzierung des NULL-Zeigers. Dies trat während eines ftrace-Stresstests beim Aufruf von `cat trace` auf:
BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode RIP: 0010:print_graph_function_event+0xe/0x20 Call Trace: s_show+0x4d/0x110 seq_read_iter+0x2d4/0x490 seq_read+0x130/0x170 vfs_read+0xb5/0x370 ksys_read+0x6d/0xe0 do_syscall_64+0xbc/0x450
Der Snapshot-Puffer wird überhaupt nicht zurückgesetzt, sodass sich dies ohne Race Condition reproduzieren lässt:
echo function_graph > /sys/kernel/tracing/current_tracer echo 1 > /sys/kernel/tracing/snapshot echo hwlat > /sys/kernel/tracing/current_tracer cat /sys/kernel/tracing/snapshot
Anstatt jedem Nutzer von tr->current_trace_flags diesen Sonderfall beizubringen, wird sichergestellt, dass er niemals NULL ist: Wenn der neu ausgewählte Tracer keine Flags definiert, fällt tracing_set_tracer() auf eine statische leere no_tracer_flags zurück. run_tracer_selftest() kann denselben Fall auslösen, daher wurde derselbe Fallback auch dort hinzugefügt. Die bestehenden Nutzer behandeln opts == NULL bereits korrekt, sodass diese Tracer wie zuvor funktionieren bleiben.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.