CVE Catalog

CVE-2026-89527

Low risk· EPSS 10%
Published: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.20%

10th percentile - higher than 10% of all known CVEs

Summary

In the Linux kernel svcrdma module, svc_rdma_create() calls kfree(cma_xprt) when svc_rdma_create_listen_id() fails. Because svc_xprt_init() has already acquired a net namespace reference via get_net_track(), kfree bypasses svc_xprt_free() which would release it, leading to unbalanced reference counts.

Risk Assessment

Unbalanced reference counts can lead to resource leaks or errors in kernel object lifecycle management, potentially causing system instability. It affects servers running RDMA services.

Recommendation

Update the Linux kernel to a version with the fix that replaces kfree() with svc_xprt_put() and adds a compensating __module_get() before svc_xprt_put() to keep counts balanced.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Use svc_xprt_put to free listener on create failure svc_rdma_create() calls kfree(cma_xprt) when svc_rdma_create_listen_id() fails. svc_xprt_init() has already acquired a net namespace reference via get_net_track(); kfree bypasses svc_xprt_free() which releases it. Replace the kfree() with svc_xprt_put() so the kref_init birth reference drops to zero and svc_xprt_free() dispatches svc_rdma_free() to clean up properly. sc_cm_id is still NULL at that point; the preceding patch added the necessary NULL guard in svc_rdma_free(). svc_xprt_free() also drops the module reference via module_put(), but the caller _svc_xprt_create() does the same on xpo_create failure, double-putting the single try_module_get() it acquired. Take a compensating __module_get() before the svc_xprt_put() to keep the count balanced, matching the convention in svc_rdma_accept()'s error path.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS