CVE-2026-97443

Summary

In the Linux kernel, the following vulnerability has been resolved:

perf/ftrace: Fix WARNING in __unregister_ftrace_function

perf_ftrace_function_unregister() unconditionally calls unregister_ftrace_function() without checking whether the ftrace_ops was ever successfully registered. This triggers a WARN_ON in __unregister_ftrace_function() when the ops doesn't have FTRACE_OPS_FL_ENABLED set.

This can happen during perf_event_alloc() error cleanup when perf_trace_destroy() is called via __free_event() on an event whose ftrace_ops registration failed or was already torn down by perf_try_init_event()'s err_destroy path.

The call path is: perf_event_alloc() error cleanup -> __free_event() -> event->destroy() [tp_perf_event_destroy] -> perf_trace_destroy() -> perf_trace_event_close() -> TRACE_REG_PERF_CLOSE -> perf_ftrace_function_unregister() -> unregister_ftrace_function() -> __unregister_ftrace_function() -> WARN_ON(!(ops->flags & FTRACE_OPS_FL_ENABLED))

Fix this by checking FTRACE_OPS_FL_ENABLED before attempting to unregister. If the ops is not enabled, just free the filter and return success.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux7ef5aa081f989ecfecc1df02068a80aebbd3ec31 < df097713b56ffac5eed32a9be2e7d27ac48d9087affected
LinuxLinuxc70ca298036c58a88686ff388d3d367e9d21acf0 < 7f845820afaad339341c2ae42bc7fdec175df9eaaffected
LinuxLinuxc70ca298036c58a88686ff388d3d367e9d21acf0 < 9581123304b23049437324038698af9fb56ee663affected
LinuxLinux315a50c6b1c6ce191f19f3372935d8e2ed9b53a6affected
LinuxLinux1209b0b29fd472e7dbd2b06544b019dd9f9b7e51affected
LinuxLinux6.12.24 < 6.12.111affected
LinuxLinux6.13.12 < 6.14affected
LinuxLinux6.14.3 < 6.15affected
LinuxLinux6.15affected
LinuxLinux0 < 6.15unaffected
LinuxLinux6.12.111 <= 6.12.*unaffected
LinuxLinux6.18.53 <= 6.18.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References