CVE-2026-74636: tracing: Fix race between update_event_fields and, event_define_fields
In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix race between updateeventfields and, eventdefinefields
The following sequence may leads race between eventdefinefields() and updateeventfields():
CPU0 (loads module A) CPU1 (loads module B) =============================== =============================== loadmodule(A) loadmodule(B) notifiercallchain notifiercallchain tracemodulenotify tracemodulenotify mutexlock(&eventmutex) traceeventupdateall() tracemoduleaddevents(A) downwrite(&traceeventsem) registerevent(callA) addeventtotracers(callA) eventdefinefields(callA) for each f: listforeachentry(field, listadd(&f->link, &class->fields, link) &class->fields) field = class->fields->next;
Where access to the class->fields is not protected by the eventmutex in traceeventupdateall().
This produces the following panic: Unable to handle kernel access ... at virtual address 0000000000000018 pc : updateeventfields+0xf8/0x368 Call trace: updateeventfields+0xf8/0x368 traceeventupdateall+0x7c/0x2b4 tracemodulenotify+0x4c/0x1dc notifiercallchain+0x84/0x168 blockingnotifiercallchainrobust+0x64/0xd4 loadmodule+0x10c8/0x123c arm64sysfinitmodule+0x230/0x31c
Fix by taking eventmutex in traceeventupdateall() before traceeventsem.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.152.1-1
Event History
Frequently Asked Questions
Is a fix available?
Yes. The issue is resolved in the stable commits 4e39f7b4d9d36508c53e89e6cbc640728df870b5, a30d421468300b1e7b2f233136aeb2db8013f555, and e5f1d301b4bdaa4206db251fdc691f623162b0a8.
How can I recognize that a system has encountered this issue?
Affected systems may panic with a kernel access fault in update_event_fields. The call trace can include update_event_fields, trace_event_update_all, trace_module_notify, notifier_call_chain, and load_module.