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().
Published: 2026-09-11
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service caused by infinite connection hang
Action: Update kernel
AI Analysis

Impact

The vulnerability arises from a race condition where Sun RPC service threads are unevenly distributed across CPU pools. When a service is configured with fewer threads than pools, some pools remain empty. The dispatch routine svc_xprt_enqueue selects a pool based on the CPU of the incoming request, queues the transport, and only wakes a thread from the same pool. If that pool has no worker threads, the transport stays queued indefinitely, causing the client connection to hang with no progress. The flaw is a classic concurrent programming race that results in a form of resource starvation (CWE-362).

Affected Systems

Affected systems are Linux kernel installations that enable the Sun RPC NFS server with NUMA‑aware thread allocation in pernode or percpu mode where the number of configured threads is less than the number of CPU pools. The report does not list specific kernel versions, so any kernel where svc_pool_for_cpu has not been patched for this issue is potentially affected.

Risk and Exploitability

The vulnerability carries a CVSS score of 5.9 and an EPSS score of < 1%, and it is not listed in the CISA KEV catalog. The flaw only causes the RPC service to hang without providing code execution or privilege escalation, so exploitation is driven by the ability to send many requests to a vulnerable server. The likely attack vector is a client‑initiated network request to the RPC service, such as an NFS mount or RPC call. If the kernel has not been patched to skip empty pools, an attacker could trigger stalled connections and ultimately degrade service availability.

Generated by OpenCVE AI on September 12, 2026 at 16:50 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that includes the svc_pool_for_cpu fix to skip empty pools during dispatch.
  • Reconfigure the NFS daemon to increase svc_num_threads so that the number of service threads is at least equal to the number of CPU pools, or disable pernode/percpu mode when it is not required.
  • Configure firewall rules or network ACLs to restrict access to Sun RPC ports (111/UDP/TCP) to trusted hosts, thereby reducing the attack surface that could exploit the hanging connection.

Generated by OpenCVE AI on September 12, 2026 at 16:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 12 Sep 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Sat, 12 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-821
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sat, 12 Sep 2026 07:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
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().
Title sunrpc: route to a populated pool in svc_pool_for_cpu()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-11T19:44:23.928Z

Reserved: 2026-09-11T19:38:34.723Z

Link: CVE-2026-89549

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:38.373

Modified: 2026-09-11T20:19:38.373

Link: CVE-2026-89549

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:44:23Z

Links: CVE-2026-89549 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-12T17:00:15Z

Weaknesses
  • CWE-821

    Incorrect Synchronization