CVE-2026-63809 in Linux
Résumé
par VulDB • 19/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf : utilisation de kvfree() pour le tampon d'écriture sysctl remplacé
proc_sys_call_handler() alloue son tampon temporaire sysctl avec kvzalloc() et le transmet à __cgroup_bpf_run_filter_sysctl(). Étant donné que kvzalloc() peut basculer vers vmalloc() pour les grandes allocations, la libération de ce tampon avec kfree() est incorrecte et peut corrompre la mémoire.
Utilisez kvfree() pour gérer en toute sécurité à la fois les allocations kmalloc et kvzalloc()/vmalloc.
Le bug a été signalé initialement par un outil d'analyse expérimental que nous développons pour détecter les bugs de gestion de la mémoire du noyau, lors de l'analyse de la version v6.13-rc1. L'outil est encore en cours de développement et n'est pas encore disponible publiquement. Une inspection manuelle confirme que le bug est toujours présent dans la version v7.1-rc5.
Le bug a été reproduit à partir de la version v7.1-rc4 dans une machine invitée QEMU x86_64 démarrée avec KASAN et CONFIG_FAILSLAB activés. Pour tester le chemin de remplacement, l'arbre de test comprenait également la correction accompagnant pour la vérification obsolète ret == 1 dans __cgroup_bpf_run_filter_sysctl(). Le programme de reproduction confine les injections failslab à la plage proc_sys_call_handler(), utilise stacktrace-depth=32 et injecte fail-nth=1 lors de l'écriture de 8191 octets vers /proc/sys/kernel/domainname depuis une tâche du groupe cible. Dans cette configuration, fail-nth=1 a déclenché le défaut :
BUG: unable to handle page fault for address: ffffeb0200024d48 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 SMP KASAN NOPTI CPU: 2 UID: 0 PID: 209 Comm: repro_proc_sys_ Not tainted 7.1.0-rc4-00686-g97625979a5d4 PREEMPT(lazy) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014 RIP: 0010:kfree+0x6e/0x510 ... Call Trace: <TASK> ? __cgroup_bpf_run_filter_sysctl+0x626/0xc30 __cgroup_bpf_run_filter_sysctl+0x74d/0xc30 ? __pfx___cgroup_bpf_run_filter_sysctl+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? __kvmalloc_node_noprof+0x345/0x870 ? proc_sys_call_handler+0x250/0x480 ? srso_return_thunk+0x5/0x5f proc_sys_call_handler+0x3a2/0x480 ? __pfx_proc_sys_call_handler+0x10/0x10 ? srso_return_thunk+0x5/0x5f ? selinux_file_permission+0x39f/0x500 ? srso_return_thunk+0x5/0x
If you want to get best quality of vulnerability data, you may have to visit VulDB.