CVE-2026-89549
Description
In the Linux kernel, the following vulnerability has been resolved: sunrpc: route to a populated pool in svc_pool_for_cpu() svc_set_num_threads() spreads the requested threads evenly across the service'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 "pernode" or "percpu" mode -- the trailing pools are left with no threads at all. svc_xprt_enqueue() selects a pool from the CPU servicing the transport, queues the transport on that pool'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. 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().
How to fix
- Linux Linux9accc25e5af0bac8479f6054e674b2c593c45281, 6f66d38e2a6c78d48723ea17ad86135ec80ca24b, d79d7b9e8acbb53e2d60f6b24afc13e2f15e691f, edb20e8c03aebacb409968c99d046f509c6c485a, 011479cf9a7657d4a3e7cc42a784ac63df594170, 9d04d64ad192439835ed9884d767353061c3ed6f, 8f766d2d0b4dabf54f8b35812df2b4f481d13316, f6310491c4cdb88af73aa551ec9df1f10a90c709 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < 9accc25e5af0bac8479f6054e674b2c593c45281, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < 6f66d38e2a6c78d48723ea17ad86135ec80ca24b, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < d79d7b9e8acbb53e2d60f6b24afc13e2f15e691f, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < edb20e8c03aebacb409968c99d046f509c6c485a, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < 011479cf9a7657d4a3e7cc42a784ac63df594170, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < 9d04d64ad192439835ed9884d767353061c3ed6f, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < 8f766d2d0b4dabf54f8b35812df2b4f481d13316, bfd241600a3b0db4fe43c859f1460d0a958d924a ≤ v < f6310491c4cdb88af73aa551ec9df1f10a90c709, 2.6.19 | 9accc25e5af0bac8479f6054e674b2c593c45281, 6f66d38e2a6c78d48723ea17ad86135ec80ca24b, d79d7b9e8acbb53e2d60f6b24afc13e2f15e691f, edb20e8c03aebacb409968c99d046f509c6c485a, 011479cf9a7657d4a3e7cc42a784ac63df594170, 9d04d64ad192439835ed9884d767353061c3ed6f, 8f766d2d0b4dabf54f8b35812df2b4f481d13316, f6310491c4cdb88af73aa551ec9df1f10a90c709 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.