<?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>Thu, 01 Oct 2026 12:36:41 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-68095 — fuse-uring: fix race between registration and connection abortion</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-68095</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;fuse-uring: fix race between registration and connection abortion&lt;/p&gt;
&lt;p&gt;This fixes this race:
- thread a: io_uring_enter -&amp;gt; register sqe -&amp;gt;
  fuse_uring_create_ring_ent -&amp;gt; allocate ent but doesn&amp;#39;t grab queue_ref
  yet
- thread b: fuse_conn_destroy() -&amp;gt; fuse_chan_abort() -&amp;gt;
  fuse_uring_abort() is a no-op due to queue ref being 0
- thread a: grabs the queue_ref, queue_ref is now 1, rest of
  fuse_uring_do_register() logic executes
- thread b: fuse_chan_abort() returns, fuse_chan_wait_aborted() now runs
  and calls
  &amp;#34;wait_event(ring-&amp;gt;stop_waitq, atomic_read(&amp;amp;ring-&amp;gt;queue_refs) == 0);&amp;#34;
The abort/unmount thread will hang indefinitely in unkillable state as
nothing will decrement queue_refs or wake stop_waitq, and the ring,
queue, and ent are leaked.&lt;/p&gt;
&lt;p&gt;Fix this by checking fch-&amp;gt;connected under fch-&amp;gt;lock after the created
ent has grabbed a ref count on the queue. This ensures that in the
scenario above, it is guaranteed that we either release the queue ref
and wake up stop_waitq (in case fuse_chan_wait_aborted() is already
waiting) in fuse_uring_do_register() when we detect !fch-&amp;gt;connected, or
if the connection is aborted after the check, it is guaranteed that the
async teardown worker will be running in the background cleaning up ents
and decrementing the ent&amp;#39;s ref on the queue, which will unblock the
eventual queue and ring teardown.&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;fuse-uring: fix race between registration and connection abortion&lt;/p&gt;
&lt;p&gt;This fixes this race:
- thread a: io_uring_enter -&amp;gt; register sqe -&amp;gt;
  fuse_uring_create_ring_ent -&amp;gt; allocate ent but doesn&amp;#39;t grab queue_ref
  yet
- thread b: fuse_conn_destroy() -&amp;gt; fuse_chan_abort() -&amp;gt;
  fuse_uring_abort() is a no-op due to queue ref being 0
- thread a: grabs the queue_ref, queue_ref is now 1, rest of
  fuse_uring_do_register() logic executes
- thread b: fuse_chan_abort() returns, fuse_chan_wait_aborted() now runs
  and calls
  &amp;#34;wait_event(ring-&amp;gt;stop_waitq, atomic_read(&amp;amp;ring-&amp;gt;queue_refs) == 0);&amp;#34;
The abort/unmount thread will hang indefinitely in unkillable state as
nothing will decrement queue_refs or wake stop_waitq, and the ring,
queue, and ent are leaked.&lt;/p&gt;
&lt;p&gt;Fix this by checking fch-&amp;gt;connected under fch-&amp;gt;lock after the created
ent has grabbed a ref count on the queue. This ensures that in the
scenario above, it is guaranteed that we either release the queue ref
and wake up stop_waitq (in case fuse_chan_wait_aborted() is already
waiting) in fuse_uring_do_register() when we detect !fch-&amp;gt;connected, or
if the connection is aborted after the check, it is guaranteed that the
async teardown worker will be running in the background cleaning up ents
and decrementing the ent&amp;#39;s ref on the queue, which will unblock the
eventual queue and ring teardown.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-68095</guid>
    </item>
  </channel>
</rss>
