<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T15:25:55.476802+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-74477</id>
    <title>CVE-2026-74477 — uprobes: Fix NULL pointer dereference in hprobe_expire()</title>
    <updated>2026-10-02T15:25:56.481796+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>uprobes: Fix NULL pointer dereference in hprobe_expire()</p>
<p>Forking a task that has a pending uretprobe can oops the kernel with a
NULL pointer dereference in the clone() path:</p>
<p>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</p>
<p>This was found on real hosts on Meta fleet.</p>
<p>I've got the impression that this is what is happening:</p>
<p>CPU 1                          CPU 2 (traced task)
  -----                          -------------------
                                 hit uprobe, prepare_uretprobe():
                                   hprobe LEASED, refcount &gt;= 1
  uprobe_unregister()
    put_uprobe(): refcount -&gt; 0
                                 fork() -&gt; dup_utask()
                                   hprobe_expire(hprobe, true)
                                     try_get_uprobe() -&gt; NULL
                                     get_uprobe(NULL)   &lt;-- Oops</p>
<p>Only take the extra reference when the uprobe is non-NULL; a NULL means
it is gone and is the correct value to return.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-74477"/>
  </entry>
</feed>
