{"id":"CVE-2026-89746","revision":"3a019a3af88b4816a5b57e63c35436f7","records":[{"revision":"3a019a3af88b4816a5b57e63c35436f7","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89746","aliases":[],"title":"tracing: Fix use-after-free with same-name named triggers","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix use-after-free with same-name named triggers\n\nWhen two hist triggers on different events are registered with the same\nname=, the second one reuses the first as named_data.  Both are added to\ntr->hist_vars by save_hist_vars() during event_hist_trigger_parse(),\nbecause save_hist_vars() is called before event_trigger_register() while\nthe named reuse is only detected later, in hist_register_trigger().\n\nIn the named-data branch hist_register_trigger() then frees the second\nhistogram's hist_data via destroy_hist_data(), but never removes its\ntr->hist_vars list entry, leaving a dangling pointer and leaking the\ntrace_array reference it holds.\n\nA later hist trigger that references a variable makes find_var_file()\nwalk tr->hist_vars and dereference the freed hist_data.  The bug is\nreproducible from userspace by writing three hist triggers to tracefs:\n\n  cd /sys/kernel/tracing\n  echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_switch/trigger\n  echo 'hist:keys=common_pid:x=common_pid:name=mh' > events/sched/sched_process_fork/trigger\n  echo 'hist:keys=common_pid:vals=$x' > events/sched/sched_process_exit/trigger\n\nThe third write panics the kernel:\n\n  BUG: KASAN: slab-use-after-free in find_var_file.part.0+0x272/0x290\n  Read of size 8 at addr ffff888001f8a0e0 by task sh/1\n  CPU: 1 UID: 0 PID: 1 Comm: sh Tainted: G      D          N\n  Call Trace:\n    find_var_file.part.0\n    find_event_var\n    parse_atom\n    parse_expr\n    __create_val_field\n    event_hist_trigger_parse\n    trigger_process_regex\n    event_trigger_write\n    vfs_write\n    ksys_write\n    do_syscall_64\n    entry_SYSCALL_64_after_hwframe\n  Allocated by task 1:\n    event_hist_trigger_parse\n  Freed by task 1:\n    hist_register_trigger+0x618/0xa30\n    event_hist_trigger_parse\n  The buggy address belongs to freed 2048-byte region\n  Oops: general protection fault ... RIP: find_var_file.part.0\n  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b\n\nFix by removing the hist_data from tr->hist_vars and releasing the\ntrace_array reference in the named-data branch of hist_register_trigger()\nbefore freeing the hist_data.","state":0,"publishedAt":"2026-09-11T19:46:51.529+00:00","modifiedAt":"2026-10-19T08:52:00.175+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"kernel/trace/trace_events_hist.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5ae1b18f05ee2b849dc03b6c15d7da0c1c6efa77\",\n                            \"lessThan\": \"441aa6742dff70297b5f64533a07a6189a026e91\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"43b254d46c740bf9dbe65709afa021dd726dfa99\",\n                            \"lessThan\": \"3a8534664426c071c2dfb5b4ffa36b18a2abfd79\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"435d2964af815aae456db554c62963b4515f19d0\",\n                            \"lessThan\": \"477d762be4b0ffaf01429ccd88859e93b0ec28cc\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"6f86bdeab633a56d5c6dccf1a2c5989b6a5e323e\",\n                            \"lessThan\": \"b1a49c22de01faf176d44e5caa765e237353a579\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"6f86bdeab633a56d5c6dccf1a2c5989b6a5e323e\",\n                            \"lessThan\": \"83d1ae0406d8eade219a81b401e201702dd9dc55\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"6f86bdeab633a56d5c6dccf1a2c5989b6a5e323e\",\n                            \"lessThan\": \"a7318172aa332a161fb9618286e64454c827f8fd\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"f1ae50cfb818ce1ac7a674406dfadb7653e2552d\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"6.1.130\",\n                            \"lessThan\": \"6.1.188\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.81\",\n                            \"lessThan\": \"6.6.157\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.18\",\n                            \"lessThan\": \"6.12.109\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.13.6\",\n                            \"lessThan\": \"6.14\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"kernel/trace/trace_events_hist.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.14\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.14\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.109\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.50\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/441aa6742dff70297b5f64533a07a6189a026e91","https://git.kernel.org/stable/c/3a8534664426c071c2dfb5b4ffa36b18a2abfd79","https://git.kernel.org/stable/c/477d762be4b0ffaf01429ccd88859e93b0ec28cc","https://git.kernel.org/stable/c/b1a49c22de01faf176d44e5caa765e237353a579","https://git.kernel.org/stable/c/83d1ae0406d8eade219a81b401e201702dd9dc55","https://git.kernel.org/stable/c/a7318172aa332a161fb9618286e64454c827f8fd"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89746","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89746","identifiers":["CVE-2026-89746"]},"retained":false,"historicalAffected":[]}],"coverage":[]}