{"id":29091,"date":"2026-09-25T20:31:51","date_gmt":"2026-09-25T12:31:51","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97935"},"modified":"2026-09-25T20:31:51","modified_gmt":"2026-09-25T12:31:51","slug":"cve-2026-97935","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97935","title":{"rendered":"CVE-2026-97935 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Set the trac"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tracing: Set the trace clock before registering the histogram trigger<\/p>\n<p>hist_register_trigger() puts the trigger on the global named_triggers<br \/>\nlist in cmd_ops-&gt;init(), and only then sets the trace clock:<\/p>\n<p>\tif (data-&gt;cmd_ops-&gt;init) {<br \/>\n\t\tret = data-&gt;cmd_ops-&gt;init(data);<br \/>\n\t\tif (ret enable_timestamps) {<br \/>\n\t\tret = tracing_set_clock(file-&gt;tr, hist_data-&gt;attrs-&gt;clock);<br \/>\n\t\tif (ret) {<br \/>\n\t\t\thist_err(tr, HIST_ERR_SET_CLOCK_FAIL, errpos(clock));<br \/>\n\t\t\tgoto out;<br \/>\n\t\t}<\/p>\n<p>The clock string is not checked anywhere before that call, so a named<br \/>\ntrigger using common_timestamp with an unknown clock fails after it has<br \/>\nalready become findable. event_hist_trigger_parse() then frees it<br \/>\nwithout taking it off the list, and the next lookup by name reads the<br \/>\nfreed object:<\/p>\n<p> ~# cd \/sys\/kernel\/tracing\/events\/sched\/sched_switch<br \/>\n ~# echo &#8216;hist:name=foo:keys=common_pid:ts=common_timestamp:clock=bogus&#8217; &gt; trigger<br \/>\n bash: echo: write error: Invalid argument<br \/>\n ~# echo &#8216;hist:name=foo:keys=common_pid&#8217; &gt; trigger<\/p>\n<p>  BUG: KASAN: slab-use-after-free in find_named_trigger+0xac\/0xc0<br \/>\n  Read of size 8 at addr ffff88800915d760 by task init\/1<br \/>\n   find_named_trigger+0xac\/0xc0<br \/>\n   hist_register_trigger+0xc1\/0x900<br \/>\n   event_hist_trigger_parse+0x3146\/0x6af0<br \/>\n   event_trigger_write+0xce\/0x160<br \/>\n  Freed by task 63:<br \/>\n   kfree+0x154\/0x420<br \/>\n   trigger_kthread_fn+0xfd\/0x160<\/p>\n<p>Set the clock before the trigger is registered, so that nothing which<br \/>\ncan fail runs after it is published, the way commit 6f86bdeab633<br \/>\n(&#8220;tracing: Fix bad hist from corrupting named_triggers list&#8221;) moved the<br \/>\nregistration below the rest of the setup.<\/p>\n<p>tracing_set_filter_buffering() is reference counted, so the init failure<br \/>\npath has to drop the reference that the clock block now takes first.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>tracing: Set the trace clock before registering the histogram trigger<\/p>\n<p>hist_register_trigger() puts the trigger on the global named<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29091","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}