← CVE announcements

SECURITY ANNOUNCEMENT

CVE-2026-99247

3 November 2026

If trace buffer allocation fails during early boot (e.g. in early_trace_init() -> allocate_trace_buffers()), tracing_disabled is left set to 1 and the global trace array events list remains uninitialized.

Later during boot, tracer_init_tracefs() (invoked via fs_initcall) queues tracerfs_init_work asynchronously without checking if tracing was disabled. When tracer_init_tracefs_work_func() runs, it calls event_trace_init() and init_tracer_tracefs(&global_trace, NULL) unconditionally. This leads to __find_event_file() dereferencing an uninitialized tr->events list, causing an early boot NULL pointer dereference Oops:

BUG: Kernel NULL pointer dereference on read at 0x00000010 Faulting instruction address: 0xc000000000485be0 Oops: Kernel access of bad area, sig: 7 [#1] ... NIP [c000000000485be0] __find_event_file+0x70/0x3c0 LR [c000000000448874] init_tracer_tracefs+0x274/0xc80 Call Trace: init_tracer_tracefs+0x274/0xc80 tracer_init_tracefs_work_func+0x50/0x320 process_one_work+0x1e8/0x5c0 worker_thread+0x1dc/0x3d0 kthread+0x194/0x1b0 start_kernel_thread+0x14/0x18

Check tracing_disabled at the beginning of tracer_init_tracefs_work_func() and return immediately if tracing is disabled or failed to initialize, preventing the crash.

Introduced

5.19 6621a7004684bfcff5af4c8e4d37989941f42a6b

Fixed releases

6.1.191 e8665e884e076d894f3eed8b9ea28e37a6448604

6.12.115 afd38b10b1c6a5c5d6952b15b990596dab9684e6

6.18.59 813e18881c6472eb229a63180ff42c808e3e949b

6.6.161 e8cfcd7e60eaa3b0dea4d71c64499604e7081736

7.2.13 7539c61f522ff693d9565a0411386c2236e776cd

7.3 b3b974008388ab59e44d764ba7a63c988fec2524

View source announcement ↗