<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 18:13:14 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-97918 — tracing: Undo the registration when enabling the histogram trigger fails</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-97918</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tracing: Undo the registration when enabling the histogram trigger fails&lt;/p&gt;
&lt;p&gt;Commit 6f86bdeab633 (&amp;#34;tracing: Fix bad hist from corrupting named_triggers
list&amp;#34;) described how a trigger that is registered but not on file-&amp;gt;triggers
ends up freed while still on the global named_triggers list, and moved the
registration down so that hist_trigger_enable() follows it immediately. One
path still gets there. hist_trigger_enable() adds the trigger and takes it
straight back out when the event cannot be enabled:&lt;/p&gt;
&lt;p&gt;list_add_tail_rcu(&amp;amp;data-&amp;gt;list, &amp;amp;file-&amp;gt;triggers);&lt;/p&gt;
&lt;p&gt;update_cond_flag(file);&lt;/p&gt;
&lt;p&gt;if (trace_event_trigger_enable_disable(file, 1) &amp;lt; 0) {
		list_del_rcu(&amp;amp;data-&amp;gt;list);
		update_cond_flag(file);
		ret--;
	}&lt;/p&gt;
&lt;p&gt;so the list walk in hist_unregister_trigger() matches nothing, test stays
NULL, and the -&amp;gt;free() that would call del_named_trigger() is skipped.
out_unreg falls through to out_free, which frees the trigger anyway:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0
 Read of size 8 at addr ffff8880091d3160 by task init/1
  find_named_trigger+0xac/0xc0
  hist_register_trigger+0xc1/0xa00
  event_hist_trigger_parse+0x3146/0x6af0
  event_trigger_write+0xce/0x160
 Freed by task 69:
  kfree+0x154/0x420
  trigger_kthread_fn+0xfd/0x160&lt;/p&gt;
&lt;p&gt;Leave the trigger where hist_unregister_trigger() can find it and let that
undo the registration, which is the only code that knows all of what
cmd_ops-&amp;gt;init() took: the named l…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tracing: Undo the registration when enabling the histogram trigger fails&lt;/p&gt;
&lt;p&gt;Commit 6f86bdeab633 (&amp;#34;tracing: Fix bad hist from corrupting named_triggers
list&amp;#34;) described how a trigger that is registered but not on file-&amp;gt;triggers
ends up freed while still on the global named_triggers list, and moved the
registration down so that hist_trigger_enable() follows it immediately. One
path still gets there. hist_trigger_enable() adds the trigger and takes it
straight back out when the event cannot be enabled:&lt;/p&gt;
&lt;p&gt;list_add_tail_rcu(&amp;amp;data-&amp;gt;list, &amp;amp;file-&amp;gt;triggers);&lt;/p&gt;
&lt;p&gt;update_cond_flag(file);&lt;/p&gt;
&lt;p&gt;if (trace_event_trigger_enable_disable(file, 1) &amp;lt; 0) {
		list_del_rcu(&amp;amp;data-&amp;gt;list);
		update_cond_flag(file);
		ret--;
	}&lt;/p&gt;
&lt;p&gt;so the list walk in hist_unregister_trigger() matches nothing, test stays
NULL, and the -&amp;gt;free() that would call del_named_trigger() is skipped.
out_unreg falls through to out_free, which frees the trigger anyway:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0
 Read of size 8 at addr ffff8880091d3160 by task init/1
  find_named_trigger+0xac/0xc0
  hist_register_trigger+0xc1/0xa00
  event_hist_trigger_parse+0x3146/0x6af0
  event_trigger_write+0xce/0x160
 Freed by task 69:
  kfree+0x154/0x420
  trigger_kthread_fn+0xfd/0x160&lt;/p&gt;
&lt;p&gt;Leave the trigger where hist_unregister_trigger() can find it and let that
undo the registration, which is the only code that knows all of what
cmd_ops-&amp;gt;init() took: the named l…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-97918</guid>
    </item>
  </channel>
</rss>
