Description
In the Linux kernel, the following vulnerability has been resolved:
xprtrdma: Decouple req recycling from RPC completion
rl_kref formerly served two distinct lifetimes through a single
refcount: it gated when a Reply could wake its RPC task, and it
gated when an rpcrdma_req could return to its free pool. The
marshal path took the Send-side reference only when SGEs needed
DMA-unmap (sc_unmap_count > 0), which made a Send carrying only
pre-registered buffers an exception: the Reply handler dropped
rl_kref from 1 to 0 and freed the req while the HCA might still
be DMA-reading from its send buffer.
Give rl_kref a narrower job. The RPC layer takes one reference
when slot allocation hands a req out. rpcrdma_prepare_send_sges()
takes a Send-side reference unconditionally after WR preparation
succeeds. xprt_rdma_free_slot() and xprt_rdma_bc_free_rqst() drop
the RPC-layer reference; rpcrdma_sendctx_unmap() drops the
Send-side reference. The req returns to its free pool only after
both owners have signed off.
The existing kref_init(&req->rl_kref) call in
rpcrdma_prepare_send_sges() is removed. Initialization moves to
the slot-allocation paths (xprt_rdma_alloc_slot and
rpcrdma_bc_rqst_get), and the release callback re-arms rl_kref
before the req returns to a free pool. A re-init in the marshal
path would discard the RPC-layer reference that already exists
on entry.
Three invariants follow:
- Any rpcrdma_req held by an rpc_rqst has rl_kref >= 1.
xprt_rdma_alloc_slot(), rpcrdma_bc_rqst_get(), and the
backlog-wake branch in xprt_rdma_alloc_slot() each kref_init
rl_kref before publishing the req. Without this invariant,
an RPC task that aborts between slot allocation and marshal
(gss_refresh failure or signal during call_connect, for
example) would drive xprt_release() ->
xprt_rdma_free_slot() -> kref_put against a refcount of
zero, saturating refcount_t and stranding the slot.
- The Send-side reference is taken only after WR prep
succeeds. A mapping failure in rpcrdma_prepare_send_sges()
runs rpcrdma_sendctx_cancel(), which DMA-unmaps the sendctx
and clears sc_req without touching rl_kref. The sendctx
ring walks in rpcrdma_sendctx_put_locked() and
rpcrdma_sendctxs_destroy() skip entries with sc_req == NULL,
so a burst of -EIO marshal failures cannot hold reqs off
rb_send_bufs.
- The release callback re-arms rl_kref so the next consumer
enters with the invariant satisfied.
Replies now complete the RPC directly. rpcrdma_reply_handler()
calls rpcrdma_complete_rqst() in place of kref_put on the
non-LocalInv branch. The LocalInv branch already completes the
RPC from frwr_unmap_async() and is unaffected.
Because Send-side references can now outlive RPC completion,
connection teardown drains sendctx entries whose unsignaled
Sends never had a later signaled completion to walk the ring.
rpcrdma_sendctxs_destroy() walks the active range and runs
rpcrdma_sendctx_unmap() on each entry with a non-NULL sc_req
before the request buffers are reset, and is moved ahead of
rpcrdma_reqs_reset() in rpcrdma_xprt_disconnect() so the reqs
are still in their pre-reset state when the Send-side refs are
released.
The drain creates a teardown-ordering hazard on the backchannel
path. With the new lifetime, releasing a bc_prealloc req from
rpcrdma_req_release() re-adds it to bc_pa_list. The disconnect
in xprt_rdma_destroy() runs after xprt_destroy_backchannel() has
already emptied bc_pa_list, so the drained reqs would otherwise
leak. xprt_rdma_destroy() now runs xprt_rdma_bc_destroy(xprt, 0)
a second time after the disconnect to reclaim them.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.3 | 6.1.178 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 7.1.5-1 | — |
| Debian 13 | linux | 6.12.100-1 | — |
| Debian 12 | linux | 6.1.180-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1033.38 | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | No fix yet | — |
| Ubuntu 26.04 LTS | linux | 7.0.0-34.34 | USN-8816-1 |
| Ubuntu 26.04 LTS | linux-aws +1 | 7.0.0-1013.13 | USN-8816-2, USN-8816-1 |
| Ubuntu 26.04 LTS | linux-azure | 7.0.0-1017.17 | USN-8888-1 |
| Ubuntu 26.04 LTS | linux-azure-fde | 7.0.0-1016.16 | USN-8888-1 |
| Ubuntu 26.04 LTS | linux-gke | 7.0.0-1007.8 | USN-8816-4 |
| Ubuntu 26.04 LTS | linux-ibm +1 | 7.0.0-1014.14 | USN-8816-2, USN-8816-1 |
| Ubuntu 26.04 LTS | linux-nvidia | 7.0.0-1025.26 | USN-9043-1 |
| Ubuntu 26.04 LTS | linux-nvidia-bos | 7.0.0-2022.23 | USN-9003-1 |
| Ubuntu 26.04 LTS | linux-oracle | 7.0.0-1012.12 | USN-8816-1 |
| Ubuntu 26.04 LTS | linux-raspi | 7.0.0-1020.20 | USN-8816-1 |
| Ubuntu 26.04 LTS | linux-riscv +1 | 7.0.0-34.34.1 | USN-8816-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-147.147 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1067.70 | USN-9024-1, USN-8917-1 |
| Ubuntu 24.04 LTS | linux-aws-7.0 +1 | 7.0.0-1013.13~24.04.1 | USN-8816-2, USN-8816-1 |
| Ubuntu 24.04 LTS | linux-azure-7.0 | 7.0.0-1017.17~24.04.1 | USN-8888-2 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1069.76 | USN-8918-1 |
| Ubuntu 24.04 LTS | linux-azure-fde-7.0 | 7.0.0-1016.16~24.04.1 | USN-8888-2 |
| Ubuntu 24.04 LTS | linux-gcp +1 | 6.8.0-1071.79 | USN-8918-1, USN-8917-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1066.74 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1052.56 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-hwe-7.0 | 7.0.0-34.34~24.04.1 | USN-8816-1 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1067.68 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-147.147.1 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-nvidia-7.0 | 7.0.0-1024.25~24.04.1 | USN-9003-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1067.70.1 | USN-9040-1 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1035.38 | USN-8781-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1064.67 | USN-8917-1 |
| Ubuntu 24.04 LTS | linux-oracle-7.0 | 7.0.0-1012.12~24.04.1 | USN-8816-3 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1068.72 | USN-9025-1 |
| Ubuntu 24.04 LTS | linux-riscv +29 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-riscv-7.0 | 7.0.0-34.34.1~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-vmware | 6.8.0-1008.8 | — |
| Ubuntu 22.04 LTS | linux +50 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-aws-6.8 | 6.8.0-1069.74~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1073.82~22.04.1 | USN-9026-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1071.78~22.04.1 | USN-9026-1 |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1073.81~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 | 6.8.0-149.149~22.04.1 | USN-9066-1 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1069.70~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-149.149.1~22.04.1 | USN-9024-1 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1067.71~22.04.1 | USN-9025-1 |
Show 12 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2056.58 | USN-9025-1 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1062.63 | USN-8917-1 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime-6.14 +1 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime +1 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1064.65~22.04.1 | USN-9024-1 |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1067.70+fips1 | USN-8917-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-147.147+fips1 | USN-8917-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips +1 | 6.8.0-1071.79+fips1 | USN-8918-1, USN-8917-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux +21 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | linux-aws-5.4 +6 | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +7 | 6.4.0-150700.53.81.1 | SUSE-SU-2026:4254-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.81.1.150700.17.45.1 | SUSE-SU-2026:4254-1 |
Show 7 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | kernel-64kb +8 | 6.12.0-160000.38.1 | SUSE-SU-2026:23902-1 |
| SLES for SAP 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23902-1 |
| SLES 16.0 | kernel-64kb +8 | 6.12.0-160000.38.1 | SUSE-SU-2026:23902-1, SUSE-SU-2026:23897-1 |
| SLES 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23902-1 |
| SLE Micro 6.2 | kernel-default-base | 6.12.0-160000.38.1.160000.2.23 | SUSE-SU-2026:23887-1 |
| SLE Micro 6.2 | kernel-rt +5 | 6.12.0-160000.38.1 | SUSE-SU-2026:23887-1, SUSE-SU-2026:23881-1 |
| SLE Micro 6.1 | kernel-default-base | 6.4.0-52.1.21.34 | SUSE-SU-2026:23529-1 |
| SLE Micro 6.1 | kernel-rt +4 | 6.4.0-52.1 | SUSE-SU-2026:23529-1, SUSE-SU-2026:23528-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-52.1.21.36 | SUSE-SU-2026:23481-1 |
| SLE Micro 6.0 | kernel-rt +4 | 6.4.0-52.1 | SUSE-SU-2026:23481-1, SUSE-SU-2026:23477-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.81.1 | SUSE-SU-2026:4254-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_20 | 1-150700.1.3.1 | SUSE-SU-2026:4120-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_21 | 1-150700.15.3.1 | SUSE-SU-2026:4254-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.75.1 | SUSE-SU-2026:4120-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | kernel-default-base | 6.12.0-160000.38.1.160000.2.22 | openSUSE-SU-2026:21910-1 |
| openSUSE Leap 16.0 | kernel-rt +11 | 6.12.0-160000.38.1 | openSUSE-SU-2026:21910-1 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-206.104.3.3.el10uek | ELSA-2026-500248 |
Advisories 29
- USN-9066-1 linux-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9024-1 linux-aws-6.8, linux-gcp-6.8, linux-ibm-6.8, linux-lowlatency-hwe-6.8, linux-nvidia, linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9026-1 linux-azure-6.8, linux-azure-fde-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- WID-SEC-2026-2852 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-9040-1 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9043-1 linux-nvidia vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8917-1 linux, linux-aws, linux-aws-fips, linux-fips, linux-gcp, linux-gcp-fips, linux-gke, linux-gkeop, linux-ibm, linux-lowlatency, linux-oracle, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9025-1 linux-oracle-6.8, linux-raspi, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-9003-1 linux-nvidia-7.0, linux-nvidia-bos vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8888-2 linux-azure-7.0, linux-azure-fde-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8918-1 linux-azure, linux-azure-fde, linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8888-1 linux-azure, linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8816-1 linux, linux-aws, linux-aws-7.0, linux-hwe-7.0, linux-ibm, linux-oracle, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8816-2 linux-gcp, linux-gcp-7.0, linux-oem-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8816-4 linux-gke vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8816-3 linux-oracle-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8781-1 linux-nvidia-tegra vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- SUSE-SU-2026:4254-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 8, 2026
- SUSE-SU-2026:23902-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23887-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23897-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- SUSE-SU-2026:23881-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 30, 2026
- openSUSE-SU-2026:21910-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 25, 2026
- SUSE-SU-2026:23528-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 15, 2026
- SUSE-SU-2026:23529-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 15, 2026
- SUSE-SU-2026:23477-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- SUSE-SU-2026:4120-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- SUSE-SU-2026:23481-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Sep 14, 2026
- ELSA-2026-500248 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Sep 4, 2026
References
- https://git.kernel.org/stable/c/740975054a1970c0cf15f70ac39724a064f45847
- https://git.kernel.org/stable/c/9f3d9b68c1c6c51746e5ecdb52b2e6a2901de37e
- https://git.kernel.org/stable/c/e7632089523acddcdd8f090ad19e96fb3107b04d
- https://git.kernel.org/stable/c/53442c7d0c888e51b8bc3da196970a669cc6b294
- https://git.kernel.org/stable/c/8203f760a72bd39a3b66bc4eff0aa272a99fe22b
- https://git.kernel.org/stable/c/e786233d2e0bbff9a82e43f02ae3a46ab4b08ec3