Description
In the Linux kernel, the following vulnerability has been resolved:

net/rds: size a connection's path set by the transport it ends up with

__rds_conn_create() computes npaths from the caller's transport before
it decides whether a connection to one of the host's own addresses is
to be handled by the loopback transport instead. That substitution is
what an RDS/TCP socket sending to a local address gets, and after it
the path init loop still runs for the TCP transport's RDS_MPATH_WORKERS
paths and allocates an ordered workqueue for each, while
rds_loop_conn_alloc() only ever provides transport data for path 0.

rds_conn_destroy() sizes its teardown from c_trans, by then the
loopback transport, so it visits path 0 only - and
rds_conn_path_destroy() would skip the other paths anyway, since it
returns before destroy_workqueue() for a path without transport data.
kfree(c_path) then drops the last pointers to seven workqueues. That
repeats for every such connection, on every netns teardown or module
unload, and every distinct local destination address is a separate
connection.

Recompute npaths once the transport is final, so that creation and
destruction agree on the set of paths. The c_path array stays sized
for the caller's transport; the unused entries are freed with it.
Published: 2026-10-18
Score: 3.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: Resource exhaustion and potential denial of service due to unbalanced allocation and deallocation of workqueues.
Action: Assess Impact
AI Analysis

Impact

The kernel’s RDS/TCP connection logic creates an array of workqueues based on the caller’s transport. When the socket is redirected to the loopback transport, the number of paths is recomputed, causing a mismatch. The teardown uses the loopback transport’s size, freeing only the first path and leaving the remaining workqueues allocated. Repeating for each connection results in a leak of workqueue objects, which can exhaust resources and degrade kernel performance, potentially leading to denial of service.

Affected Systems

This flaw affects Linux kernel implementations that include the RDS transport. All recent kernels that ship with the unchanged RDS/TCP path allocation code are vulnerable until the patch is applied.

Risk and Exploitability

The bug does not provide a direct remote code execution path, but it can be leveraged locally via a loopback connection to gradually consume kernel resources. The CVSS score of 3.3 and an EPSS score of < 1% indicate low severity and a very low probability of exploitation, respectively. However, the repeated allocation pattern suggests that sustained local use could trigger service disruption. The flaw is not listed in the CISA KEV catalog, implying no publicly known exploits at this time.

Generated by OpenCVE AI on October 20, 2026 at 19:29 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that incorporates the RDS path size fix.
  • If an upgrade is not immediately possible, disable the RDS module or limit the use of loopback RDS/TCP sockets to reduce repeated allocations.
  • Monitor kernel logs for signs of workqueue exhaustion and enforce limits on local connection rates to mitigate resource depletion.

Generated by OpenCVE AI on October 20, 2026 at 19:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 20 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Low


Sun, 18 Oct 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/rds: size a connection's path set by the transport it ends up with __rds_conn_create() computes npaths from the caller's transport before it decides whether a connection to one of the host's own addresses is to be handled by the loopback transport instead. That substitution is what an RDS/TCP socket sending to a local address gets, and after it the path init loop still runs for the TCP transport's RDS_MPATH_WORKERS paths and allocates an ordered workqueue for each, while rds_loop_conn_alloc() only ever provides transport data for path 0. rds_conn_destroy() sizes its teardown from c_trans, by then the loopback transport, so it visits path 0 only - and rds_conn_path_destroy() would skip the other paths anyway, since it returns before destroy_workqueue() for a path without transport data. kfree(c_path) then drops the last pointers to seven workqueues. That repeats for every such connection, on every netns teardown or module unload, and every distinct local destination address is a separate connection. Recompute npaths once the transport is final, so that creation and destruction agree on the set of paths. The c_path array stays sized for the caller's transport; the unused entries are freed with it.
Title net/rds: size a connection's path set by the transport it ends up with
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-10-19T09:21:44.401Z

Reserved: 2026-09-25T10:25:14.357Z

Link: CVE-2026-98560

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:08.143

Modified: 2026-10-19T10:19:12.577

Link: CVE-2026-98560

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98560 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T19:30:07Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime