CVE-2026-89549

sunrpc: route to a populated pool in svc_pool_for_cpu()

State
Published
Severity
7.5 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

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().

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before 9accc25e5af0bac8479f6054e674b2c593c45281Affected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before 6f66d38e2a6c78d48723ea17ad86135ec80ca24bAffected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before d79d7b9e8acbb53e2d60f6b24afc13e2f15e691fAffected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before edb20e8c03aebacb409968c99d046f509c6c485aAffected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before 011479cf9a7657d4a3e7cc42a784ac63df594170Affected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before 9d04d64ad192439835ed9884d767353061c3ed6fAffected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before 8f766d2d0b4dabf54f8b35812df2b4f481d13316Affected
  • bfd241600a3b0db4fe43c859f1460d0a958d924a to before f6310491c4cdb88af73aa551ec9df1f10a90c709Affected
LinuxLinux
  • 2.6.19Affected
  • before 2.6.19Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.