CVE-2026-31481

tracing: Drain deferred trigger frees if kthread creation fails

published April 22, 2026

CVSS
—
EPSS
0%
Percentile
3.3
In the wild
Unconfirmed
What it is

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

tracing: Drain deferred trigger frees if kthread creation fails

Boot-time trigger registration can fail before the trigger-data cleanup

kthread exists. Deferring those frees until late init is fine, but the

post-boot fallback must still drain the deferred list if kthread

creation never succeeds.

Otherwise, boot-deferred nodes can accumulate on

trigger_data_free_list, later frees fall back to synchronously freeing

only the current object, and the older queued entries are leaked

forever.

To trigger this, add the following to the kernel command line:

trace_event=sched_switch trace_trigger=sched_switch.traceon,sched_switch.traceon

The second traceon trigger will fail and be freed. This triggers a NULL

pointer dereference and crashes the kernel.

Keep the deferred boot-time behavior, but when kthread creation fails,

drain the whole queued list synchronously. Do the same in the late-init

drain path so queued entries are not stranded there either.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00143 · 3.3th percentile
Published
2026-04-22T13:54Z
EPSS history
Timeline
  • 22 APR 13:54Z
    tracing: Drain deferred trigger frees if kthread creation fails
    cvelistv5