<?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 15:25:54 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-74477 — uprobes: Fix NULL pointer dereference in hprobe_expire()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-74477</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;uprobes: Fix NULL pointer dereference in hprobe_expire()&lt;/p&gt;
&lt;p&gt;Forking a task that has a pending uretprobe can oops the kernel with a
NULL pointer dereference in the clone() path:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000018
  Oops: 0002 [#1] SMP NOPTI
  RIP: 0010:hprobe_expire
  CR2: 0000000000000018
  Call Trace:
   uprobe_copy_process
   copy_process
   kernel_clone
   __x64_sys_clone
   do_syscall_64
   entry_SYSCALL_64_after_hwframe&lt;/p&gt;
&lt;p&gt;This was found on real hosts on Meta fleet.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve got the impression that this is what is happening:&lt;/p&gt;
&lt;p&gt;CPU 1                          CPU 2 (traced task)
  -----                          -------------------
                                 hit uprobe, prepare_uretprobe():
                                   hprobe LEASED, refcount &amp;gt;= 1
  uprobe_unregister()
    put_uprobe(): refcount -&amp;gt; 0
                                 fork() -&amp;gt; dup_utask()
                                   hprobe_expire(hprobe, true)
                                     try_get_uprobe() -&amp;gt; NULL
                                     get_uprobe(NULL)   &amp;lt;-- Oops&lt;/p&gt;
&lt;p&gt;Only take the extra reference when the uprobe is non-NULL; a NULL means
it is gone and is the correct value to return.&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;uprobes: Fix NULL pointer dereference in hprobe_expire()&lt;/p&gt;
&lt;p&gt;Forking a task that has a pending uretprobe can oops the kernel with a
NULL pointer dereference in the clone() path:&lt;/p&gt;
&lt;p&gt;BUG: kernel NULL pointer dereference, address: 0000000000000018
  Oops: 0002 [#1] SMP NOPTI
  RIP: 0010:hprobe_expire
  CR2: 0000000000000018
  Call Trace:
   uprobe_copy_process
   copy_process
   kernel_clone
   __x64_sys_clone
   do_syscall_64
   entry_SYSCALL_64_after_hwframe&lt;/p&gt;
&lt;p&gt;This was found on real hosts on Meta fleet.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve got the impression that this is what is happening:&lt;/p&gt;
&lt;p&gt;CPU 1                          CPU 2 (traced task)
  -----                          -------------------
                                 hit uprobe, prepare_uretprobe():
                                   hprobe LEASED, refcount &amp;gt;= 1
  uprobe_unregister()
    put_uprobe(): refcount -&amp;gt; 0
                                 fork() -&amp;gt; dup_utask()
                                   hprobe_expire(hprobe, true)
                                     try_get_uprobe() -&amp;gt; NULL
                                     get_uprobe(NULL)   &amp;lt;-- Oops&lt;/p&gt;
&lt;p&gt;Only take the extra reference when the uprobe is non-NULL; a NULL means
it is gone and is the correct value to return.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-74477</guid>
    </item>
  </channel>
</rss>
