<?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 10:46:14 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89549 — sunrpc: route to a populated pool in svc_pool_for_cpu()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89549</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;sunrpc: route to a populated pool in svc_pool_for_cpu()&lt;/p&gt;
&lt;p&gt;svc_set_num_threads() spreads the requested threads evenly across the
service&amp;#39;s pools (base = nrservs / sv_nrpools).  When a service runs
fewer threads than it has pools -- e.g. an nfsd configured with fewer
threads than the host has NUMA nodes while running in &amp;#34;pernode&amp;#34; or
&amp;#34;percpu&amp;#34; mode -- the trailing pools are left with no threads at all.&lt;/p&gt;
&lt;p&gt;svc_xprt_enqueue() selects a pool from the CPU servicing the transport,
queues the transport on that pool&amp;#39;s sp_xprts, and only wakes a thread
from the same pool.  Each thread services exclusively its own pool, so a
transport that lands on a threadless pool is enqueued on sp_xprts and
never picked up: the connection hangs indefinitely.&lt;/p&gt;
&lt;p&gt;Have svc_pool_for_cpu() skip pools that currently have no threads,
falling back to the next populated pool.  This trades NUMA locality for
a guarantee that the work is actually serviced.  sp_nrthreads is only
updated under the service mutex; the lockless read here is a best-effort
routing hint, so annotate it with data_race().&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;sunrpc: route to a populated pool in svc_pool_for_cpu()&lt;/p&gt;
&lt;p&gt;svc_set_num_threads() spreads the requested threads evenly across the
service&amp;#39;s pools (base = nrservs / sv_nrpools).  When a service runs
fewer threads than it has pools -- e.g. an nfsd configured with fewer
threads than the host has NUMA nodes while running in &amp;#34;pernode&amp;#34; or
&amp;#34;percpu&amp;#34; mode -- the trailing pools are left with no threads at all.&lt;/p&gt;
&lt;p&gt;svc_xprt_enqueue() selects a pool from the CPU servicing the transport,
queues the transport on that pool&amp;#39;s sp_xprts, and only wakes a thread
from the same pool.  Each thread services exclusively its own pool, so a
transport that lands on a threadless pool is enqueued on sp_xprts and
never picked up: the connection hangs indefinitely.&lt;/p&gt;
&lt;p&gt;Have svc_pool_for_cpu() skip pools that currently have no threads,
falling back to the next populated pool.  This trades NUMA locality for
a guarantee that the work is actually serviced.  sp_nrthreads is only
updated under the service mutex; the lockless read here is a best-effort
routing hint, so annotate it with data_race().&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89549</guid>
    </item>
  </channel>
</rss>
