CVE-2022-49892 in Linuxinformation

Résumé

par VulDB • 01/06/2026

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

ftrace : Correction d'un use-after-free sur les ftrace_ops dynamiques

KASAN a signalé un use-after-free avec les ops ftrace [1]. Il a été constaté à partir de vmcore que perf avait enregistré deux ops avec le même contenu successivement, les deux étant dynamiques. Après la désinscription du second ops, un use-after-free s'est produit.

Dans ftrace_shutdown(), lorsque le second ops est désinscrit, la commande FTRACE_UPDATE_CALLS n'est pas définie car il existe un autre ops activé avec le même contenu. De plus, les deux ops sont dynamiques et la fonction de rappel ftrace est ftrace_ops_list_func, donc la commande FTRACE_UPDATE_TRACE_FUNC ne sera pas définie. En fin de compte, la valeur de 'command' sera 0 et ftrace_shutdown() ignorera la synchronisation RCU.

Cependant, ftrace peut être activé. Lorsque l'ops est libéré, un autre CPU peut être en train d'accéder à l'ops. Ajout de la synchronisation manquante pour corriger ce problème.

[1]
BUG: KASAN: use-after-free in __ftrace_ops_list_func kernel/trace/ftrace.c:7020 [inline]
BUG: KASAN: use-after-free in ftrace_ops_list_func+0x100/0x120 kernel/trace/ftrace.c:7030 Read of size 8 at addr ffff888103880000 by task 14445/14445

Allocated by task 14445: kasan_save_stack+0x24/0x50 mm/kasan/common.c:48 kasan_set_track mm/kasan/common.c:56 [inline]
__kasan_kmalloc mm/kasan/common.c:479 [inline]
__kasan_kmalloc.constprop.0+0x110/0x13c mm/kasan/common.c:449 kasan_kmalloc+0xc/0x14 mm/kasan/common.c:493 kmem_cache_alloc_trace+0x440/0x924 mm/slub.c:2950 kmalloc include/linux/slab.h:563 [inline]
kzalloc include/linux/slab.h:675 [inline]
perf_event_alloc.part.0+0xb4/0x1350 kernel/events/core.c:11230 perf_event_alloc kernel/events/core.c:11733 [inline]
__do_sys_perf_event_open kernel/events/core.c:11831 [inline]
__se_sys_perf_event_open+0x550/0x15f4 kernel/events/core.c:11723 __arm64_sys_perf_event_open+0x6c/0x80 kernel/events/core.c:11723 [...]

Freed by task 14445: kasan_save_stack+0x24/0x50 mm/kasan/common.c:48 kasan_set_track+0x24/0x34 mm/kasan/common.c:56 kasan_set_free_info+0x20/0x40 mm/kasan/generic.c:358 __kasan_slab_free.part.0+0x11c/0x1b0 mm/kasan/common.c:437 __kasan_slab_free mm/kasan/common.c:445 [inline]
kasan_slab_free+0x2c/0x40 mm/kasan/common.c:446 slab_free_hook mm/slub.c:1569 [inline]
slab_free_freelist_hook mm/slub.c:1608 [inline]
slab_free mm/slub.c:3179 [inline]
kfree+0x12c/0xc10 mm/slub.c:4176 perf_event_alloc.part.0+0xa0c/0x1350 kernel/events/core.c:11434 perf_event_alloc kernel/events/core.c:11733 [inline]
__do_sys_perf_event_open kernel/events/core.c:11831 [inline]
__se_sys_perf_event_open+0x550/0x15f4 kernel/events/core.c:11723

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

Responsable

Linux

Réserver

01/05/2025

Divulgation

01/05/2025

Modérer

accepté

Entrée

VDB-307035

CPE

prêt

EPSS

0.00188

KEV

non

Activités

très faible

Sources

Want to know what is going to be exploited?

We predict KEV entries!