What’s Vulnerable › Vulnerabilities
CVE-2026-31481: tracing: Drain deferred trigger frees if kthread creation fails
- Severity: medium (CVSS 5.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.1% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-04-22 · updated 2026-06-17
- Weakness: CWE-476
Description
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.
Affected products
- Linux kernel: from 6.19.1 before 6.19.11; 6.19, 7.0-rc1, 7.0-rc2, 7.0-rc3, 7.0-rc4, 7.0-rc5 (+2) — fixed in 6.19.11
How to fix
Upgrade to a fixed version: Linux kernel 6.19.11. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/250ab25391edeeab8462b68be42e4904506c409c
- https://git.kernel.org/stable/c/771624b7884a83bb9f922ae64ee41a5f8b7576c9
Get alerted when CVE-2026-31481 or the next vulnerability affects your stack