Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
4fb8518bdac8e85f6580ea3f586adf396cd472bc to < 31b8293495ba94ccf494e556a318886b716884b6affected4fb8518bdac8e85f6580ea3f586adf396cd472bc to < 2e35ec558b8cece9399a50141ecaeadbdb8768dcaffected4fb8518bdac8e85f6580ea3f586adf396cd472bc to < ee70d690b5544b736706a9a5796aafb634013f54affected4fb8518bdac8e85f6580ea3f586adf396cd472bc to < e68380710fc970e07610b2f42594575ad35fdb1caffected4fb8518bdac8e85f6580ea3f586adf396cd472bc to < ac1dd6002f758ab7dd3e737757e5a1bb1c0b38d6affected4fb8518bdac8e85f6580ea3f586adf396cd472bc to < e346ef7bcb137f50c49f969330ab7dcf64ea1654affected
Linux Linux
Default version status: affected
2.6.37affected0 to < 2.6.37unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.56 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/31b8293495ba94ccf494e556a318886b716884b6 ↗
- https://git.kernel.org/stable/c/2e35ec558b8cece9399a50141ecaeadbdb8768dc ↗
- https://git.kernel.org/stable/c/ee70d690b5544b736706a9a5796aafb634013f54 ↗
- https://git.kernel.org/stable/c/e68380710fc970e07610b2f42594575ad35fdb1c ↗
- https://git.kernel.org/stable/c/ac1dd6002f758ab7dd3e737757e5a1bb1c0b38d6 ↗
- https://git.kernel.org/stable/c/e346ef7bcb137f50c49f969330ab7dcf64ea1654 ↗