<?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>Fri, 02 Oct 2026 12:49:57 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-72071 — tracing/user_events: Fix use-after-free in user_event_mm_dup()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-72071</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/user_events: Fix use-after-free in user_event_mm_dup()&lt;/p&gt;
&lt;p&gt;user_event_mm_dup() walks the parent mm&amp;#39;s enabler list locklessly under
rcu_read_lock() during fork() (from copy_process()); it does not take
event_mutex:&lt;/p&gt;
&lt;p&gt;rcu_read_lock();
	list_for_each_entry_rcu(enabler, &amp;amp;old_mm-&amp;gt;enablers, mm_enablers_link)
		enabler-&amp;gt;event = user_event_get(orig-&amp;gt;event);&lt;/p&gt;
&lt;p&gt;user_event_enabler_destroy() removes an enabler from that list with
list_del_rcu() and then, without waiting for a grace period, drops the
enabler&amp;#39;s user_event reference with user_event_put() and frees the enabler
with kfree(). A reader that loaded the enabler before the list_del_rcu()
can still be walking it, which leads to two use-after-frees:&lt;/p&gt;
&lt;p&gt;- kfree(enabler) frees the enabler while that reader dereferences
   enabler-&amp;gt;event.&lt;/p&gt;
&lt;p&gt;- user_event_put() may drop the last reference to the user_event, which
   is then freed (via delayed_destroy_user_event() on a work queue), while
   the same reader does user_event_get(orig-&amp;gt;event) on it.&lt;/p&gt;
&lt;p&gt;Both are reachable by an unprivileged task that can open user_events_data:
one multithreaded process that registers an enabler and then concurrently
unregisters it and calls fork() triggers the race. KASAN reports a
slab-use-after-free in user_event_mm_dup() during clone(), with a
&amp;#34;refcount_t: addition on 0&amp;#34; warning when the user_event is freed.&lt;/p&gt;
&lt;p&gt;The enabler use-after-free was found first; the user_event one was reported
by…&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/user_events: Fix use-after-free in user_event_mm_dup()&lt;/p&gt;
&lt;p&gt;user_event_mm_dup() walks the parent mm&amp;#39;s enabler list locklessly under
rcu_read_lock() during fork() (from copy_process()); it does not take
event_mutex:&lt;/p&gt;
&lt;p&gt;rcu_read_lock();
	list_for_each_entry_rcu(enabler, &amp;amp;old_mm-&amp;gt;enablers, mm_enablers_link)
		enabler-&amp;gt;event = user_event_get(orig-&amp;gt;event);&lt;/p&gt;
&lt;p&gt;user_event_enabler_destroy() removes an enabler from that list with
list_del_rcu() and then, without waiting for a grace period, drops the
enabler&amp;#39;s user_event reference with user_event_put() and frees the enabler
with kfree(). A reader that loaded the enabler before the list_del_rcu()
can still be walking it, which leads to two use-after-frees:&lt;/p&gt;
&lt;p&gt;- kfree(enabler) frees the enabler while that reader dereferences
   enabler-&amp;gt;event.&lt;/p&gt;
&lt;p&gt;- user_event_put() may drop the last reference to the user_event, which
   is then freed (via delayed_destroy_user_event() on a work queue), while
   the same reader does user_event_get(orig-&amp;gt;event) on it.&lt;/p&gt;
&lt;p&gt;Both are reachable by an unprivileged task that can open user_events_data:
one multithreaded process that registers an enabler and then concurrently
unregisters it and calls fork() triggers the race. KASAN reports a
slab-use-after-free in user_event_mm_dup() during clone(), with a
&amp;#34;refcount_t: addition on 0&amp;#34; warning when the user_event is freed.&lt;/p&gt;
&lt;p&gt;The enabler use-after-free was found first; the user_event one was reported
by…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-72071</guid>
    </item>
  </channel>
</rss>
