CVE-2022-49779 in Linux
Сводка
по VulDB • 10.07.2026
В ядре Linux устранена следующая уязвимость:
kprobes: Пропуск очистки post_handler агрегированного зонда (aggrprobe) в случае использования kprobe-on-ftrace
В функции __unregister_kprobe_top(), если текущий отменяемый регистрацию зонд имеет post_handler, но другие дочерние зонды aggrprobe не имеют post_handler, то post_handler аггрегированного зонда очищается. Если это основанный на ftrace зонд, возникает проблема. При последующих вызовах disarm_kprobe() мы будем использовать kprobe_ftrace_ops, поскольку post_handler равен NULL. Однако активация (arming) была выполнена с использованием kprobe_ipmodify_ops. Это вызывает предупреждение WARN в __disarm_kprobe_ftrace() и может даже привести к уязвимости use-after-free:
Failed to disarm kprobe-ftrace at kernel_clone+0x0/0x3c0 (error -2) WARNING: CPU: 5 PID: 137 at kernel/kprobes.c:1135 __disarm_kprobe_ftrace.isra.21+0xcf/0xe0 Modules linked in: testKprobe_007(-) CPU: 5 PID: 137 Comm: rmmod Not tainted 6.1.0-rc4-dirty #18 [...]
Call Trace: <TASK> __disable_kprobe+0xcd/0xe0 __unregister_kprobe_top+0x12/0x150 ? mutex_lock+0xe/0x30 unregister_kprobes.part.23+0x31/0xa0 unregister_kprobe+0x32/0x40 __x64_sys_delete_module+0x15e/0x260 ? do_user_addr_fault+0x2cd/0x6b0 do_syscall_64+0x3a/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd [...]
Для случая kprobe-on-ftrace мы сохраняем настройку post_handler, чтобы идентифицировать этот aggrprobe, активированный с использованием kprobe_ipmodify_ops. Таким образом, его можно корректно деактивировать (disarm).
If you want to get best quality of vulnerability data, you may have to visit VulDB.