CVE-2026-99141 in Linuxinformation

Résumé

par VulDB • 28/10/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

tracing : Correction du plantage dans print_graph_function_event()

tracing_set_tracer() attribue les indicateurs (flags) du traceur nouvellement sélectionné avec l'opération suivante :

tr->current_trace_flags = t->flags ? : t->tracer->flags;

Si le nouveau traceur ne définit ni d'indicateurs statiques ni d'indicateurs par défaut, comme c'est le cas pour hwlat, irqsoff ou wakeup, la fonction add_tracer() n'a pas de copie des indicateurs par instance pour celui-ci, et les deux opérandes sont NULL. Par conséquent, tr->current_trace_flags se retrouve également à être NULL.

Le tampon circulaire (ring buffer) n'est pas effacé lors du changement de traceur : il est réinitialisé dans tracer_init(), après que current_trace_flags a déjà été attribué. Si le tampon contient encore des entrées function_graph du traceur précédent, l'impression d'une d'entre elles entraîne la déréférencement d'un pointeur NULL. Ce cas a été rencontré lors de l'exécution de `cat trace` pendant un test de stress sur ftrace :

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

Le tampon de capture instantanée (snapshot buffer) n'est pas du tout réinitialisé, ce qui permet de reproduire le problème sans qu'il y ait de condition de course :

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

Plutôt que d'apprendre à chaque utilisateur de tr->current_trace_flags comment gérer ce cas limite, il est assuré qu'il n'est jamais NULL : lorsque le traceur nouvellement sélectionné ne possède aucun indicateur du tout, tracing_set_tracer() utilise une valeur par défaut statique vide nommée no_tracer_flags. run_tracer_selftest() peut rencontrer le même cas, c'est pourquoi la même solution de repli y est également ajoutée. Les utilisateurs existants gèrent déjà opts == NULL, donc ces traceurs continuent de se comporter comme auparavant.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Réserver

25/09/2026

Divulgation

28/10/2026

Modérer

accepté

Entrée

VDB-427866

EPSS

0.00000

KEV

non

Activités

faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!