First published: Wed Apr 16 2025(Updated: )
In the Linux kernel, the following vulnerability has been resolved: tracing: Fix use-after-free in print_graph_function_flags during tracer switching Kairui reported a UAF issue in print_graph_function_flags() during ftrace stress testing [1]. This issue can be reproduced if puting a 'mdelay(10)' after 'mutex_unlock(&trace_types_lock)' in s_start(), and executing the following script: $ echo function_graph > current_tracer $ cat trace > /dev/null & $ sleep 5 # Ensure the 'cat' reaches the 'mdelay(10)' point $ echo timerlat > current_tracer The root cause lies in the two calls to print_graph_function_flags within print_trace_line during each s_show(): * One through 'iter->trace->print_line()'; * Another through 'event->funcs->trace()', which is hidden in print_trace_fmt() before print_trace_line returns. Tracer switching only updates the former, while the latter continues to use the print_line function of the old tracer, which in the script above is print_graph_function_flags. Moreover, when switching from the 'function_graph' tracer to the 'timerlat' tracer, s_start only calls graph_trace_close of the 'function_graph' tracer to free 'iter->private', but does not set it to NULL. This provides an opportunity for 'event->funcs->trace()' to use an invalid 'iter->private'. To fix this issue, set 'iter->private' to NULL immediately after freeing it in graph_trace_close(), ensuring that an invalid pointer is not passed to other tracers. Additionally, clean up the unnecessary 'iter->private = NULL' during each 'cat trace' when using wakeup and irqsoff tracers. [1] https://lore.kernel.org/all/20231112150030.84609-1-ryncsn@gmail.com/
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Kernel | ||
Linux Kernel | >=4.14.324<4.15 | |
Linux Kernel | >=4.19.293<4.20 | |
Linux Kernel | >=5.4.255<5.4.292 | |
Linux Kernel | >=5.10.193<5.10.236 | |
Linux Kernel | >=5.15.129<5.15.180 | |
Linux Kernel | >=6.1.50<6.1.134 | |
Linux Kernel | >=6.4.13<6.6.87 | |
Linux Kernel | >=6.7<6.12.23 | |
Linux Kernel | >=6.13<6.13.11 | |
Linux Kernel | >=6.14<6.14.2 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2025-22035 has a medium severity rating, indicating potential risk but not immediate critical exposure.
To fix CVE-2025-22035, you should update your Linux kernel to the latest version where this vulnerability has been addressed.
CVE-2025-22035 affects the Linux kernel, particularly those versions that utilize the ftrace functionality for tracing.
CVE-2025-22035 can potentially allow an attacker to exploit a use-after-free condition, leading to system instability or possible arbitrary code execution.
There is no known workaround for CVE-2025-22035, so updating the kernel is the recommended action.