CVE-2026-64235 in Linux
Riassunto
di VulDB • 24/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
x86/ftrace: Spostare i riferimenti percpu %rip-relative nei trampolini dinamici
Con CONFIG_CALL_DEPTH_TRACKING abilitato su una piattaforma x86 affetta da retbleed (ad esempio Skylake), con retbleed=stuff, la registrazione di un trampolino ftrace dinamico provoca un crash al primo richiamo alla funzione tracciata:
BUG: unable to handle page fault for address: ffff88817ae18880 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page PGD 4b53067 P4D 4b53067 PUD 0 Oops: Oops: 0002 [#1] SMP PTI
CPU: 3 UID: 0 PID: 187 Comm: usleep Not tainted 7.0.10 #243 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.17.0-2-2 04/01/2014 Code: 24 78 00 00 00 00 48 89 ea 48 89 54 24 20 48 8b b4 24 b8 00 00 00 48 8b bc 24 b0 00 00 00 48 89 bc 24 80 00 00 00 48 83 ef 05 <65> 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89 Call Trace: <TASK> ? find_held_lock ? exc_page_fault ? lock_release ? __x64_sys_clock_nanosleep ? lockdep_hardirqs_on_prepare ? trace_hardirqs_on __x64_sys_clock_nanosleep do_syscall_64 ? exc_page_fault ? call_depth_return_thunk entry_SYSCALL_64_after_hwframe ... Kernel panic - not syncing: Fatal exception
Questo piccolo script di riproduzione (reproducer) consente di innescare facilmente il crash:
# echo 'p __x64_sys_clock_nanosleep' > /sys/kernel/tracing/kprobe_events # echo 1 > /sys/kernel/tracing/events/kprobes/p___x64_sys_clock_nanosleep_0/enable # usleep 1
Il monitoraggio del crash sotto GDB indica l'esatta istruzione responsabile dell'incremento della profondità di chiamata:
sarq $5, %gs:__x86_call_depth(%rip)
Questa istruzione corrisponde a quella inserita da ftrace_regs_caller in ftrace_64.S. Questo codice emesso funzionava probabilmente bene fino all'introduzione di
59bec00ace28 ("x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR()"):
ha reso l'indirizzamento per il conteggio della profondità di chiamata relativo a $rip, invece che basato su un indirizzo assoluto.
Poiché la posizione es
If you want to get best quality of vulnerability data, you may have to visit VulDB.