CVE-2026-74636

tracing: Fix race between update_event_fields and, event_define_fields

State
Published
Severity
Not scored
Published
Aug 22, 2026
Updated
Aug 22, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

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

tracing: Fix race between update_event_fields and, event_define_fields

The following sequence may leads race between event_define_fields() and update_event_fields():

CPU0 (loads module A) CPU1 (loads module B) =============================== =============================== load_module(A) load_module(B) notifier_call_chain notifier_call_chain trace_module_notify trace_module_notify mutex_lock(&event_mutex) trace_event_update_all() trace_module_add_events(A) down_write(&trace_event_sem) __register_event(call_A) __add_event_to_tracers(call_A) event_define_fields(call_A) for each f: list_for_each_entry(field, list_add(&f->link, &class->fields, link) &class->fields) field = class->fields->next;

Where access to the class->fields is not protected by the event_mutex in trace_event_update_all().

This produces the following panic: Unable to handle kernel access ... at virtual address 0000000000000018 pc : update_event_fields+0xf8/0x368 Call trace: update_event_fields+0xf8/0x368 trace_event_update_all+0x7c/0x2b4 trace_module_notify+0x4c/0x1dc notifier_call_chain+0x84/0x168 blocking_notifier_call_chain_robust+0x64/0xd4 load_module+0x10c8/0x123c __arm64_sys_finit_module+0x230/0x31c

Fix by taking event_mutex in trace_event_update_all() before trace_event_sem.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7c6bd60999f32138e3b73fd97ea11ef47a94de25 to before 4e39f7b4d9d36508c53e89e6cbc640728df870b5Affected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before a30d421468300b1e7b2f233136aeb2db8013f555Affected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before e5f1d301b4bdaa4206db251fdc691f623162b0a8Affected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before fdeb190b0905a6aaed1e5d6adfb8613214748d7dAffected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before ed49684e69f846bf50b5050651ccdb87cfd152c0Affected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before f128740f39ab28d1f4ad5bdd10f3e117eec0c374Affected
  • b3bc8547d3be60898818885f5bf22d0a62e2eb48 to before c3730b8373bb5059d735509b9e6a00d7eb337d7cAffected
  • 55defdf935fab9f2989a197aae1042c082d9a343Affected
  • 0c53a5c80e6e286733381a1d9f255ba4039e2e45Affected
  • 5.15.33 to before 5.15.216Affected
  • 5.16.19 to before 5.17Affected
  • 5.17.2 to before 5.18Affected
LinuxLinux
  • 5.18Affected
  • before 5.18Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.152 through 6.6.*Not affected
  • 6.12.104 through 6.12.*Not affected
  • 6.18.45 through 6.18.*Not affected
  • 7.1.9 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.