Skip to content
OpenAdvisories
High · 8.1 CVE-2026-98069 EUVD-2026-86722GHSA-8xjr-h523-r9wr

net/rds: acquire the fastpath locks in rds_conn_shutdown()

Published Sep 25, 2026 · Updated Oct 19, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: kernel Package: linux Package: linux Package: linux-6.12 Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-7.0 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.17 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-7.0 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.15 Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.17 Package: linux-azure-fde-6.2 Package: linux-azure-fde-6.8 Package: linux-azure-fde-7.0 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-azure-nvidia-6.14 Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-7.0 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.17 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-7.0 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-lts-xenial Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-7.0 Package: linux-nvidia-bos Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oem-7.0 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-oracle-7.0 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.17 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-riscv-7.0 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

net/rds: acquire the fastpath locks in rds_conn_shutdown()

rds_conn_shutdown() quiesces the transmit and receive-refill paths by
waiting for RDS_IN_XMIT and RDS_RECV_REFILL to be sampled clear, and
then runs the transport shutdown and rds_conn_path_reset(). Sampling
the bits clear is not the same as owning them: the moment after the
wait_event() returns, rds_send_xmit() can re-acquire RDS_IN_XMIT (or
rds_ib_recv_refill() can re-acquire RDS_RECV_REFILL) and run
concurrently with the teardown.

The sender does recheck the connection state after taking the lock,
but that recheck is a classic store-buffering pattern: teardown writes
the state and reads the bit while the sender writes the bit and reads
the state. acquire_in_xmit() is only an acquire operation, so on
weakly ordered architectures both sides can miss each other's write,
and the transmit path then runs while the transport zeroes its rings
(e.g. rds_ib_ring_init()) and rds_send_path_reset() rewrites the
transmit state under it.

Oracle UEK fixed the same class of crashes - a 14-year tail of
BUG_ON()s in rds_ib_sub_signaled(), unexpected op-codes and NULL
dereferences in rds_ib_send_cqe_handler() during failover testing -
by making the teardown path *acquire* the fastpath bit locks instead
of testing them ("rds: Make sure transmit path and connection
tear-down does not run concurrently"). Ownership of a single word is
decided by RMW atomicity, so no cross-variable ordering is needed.

Do the same here: take both locks before calling the transport
shutdown, hold them across rds_conn_path_reset(), and release them
explicitly with a wake-up afterwards. Both are released with
clear_bit_unlock(), so that the ring re-initialization done by the
transport shutdown and the transmit state rewritten by
rds_send_path_reset() are ordered before either bit is seen clear by
the next acquire_in_xmit() or acquire_refill().

The fastpath users of these bits - rds_send_xmit() and
rds_ib_recv_refill() - are trylock style and back off while teardown
owns the locks, so no new lock dependency is introduced for them.
rds_tcp_reset_callbacks() is different: since the previous patch it
acquires RDS_IN_XMIT as well, and it blocks doing so, so its wait now
spans the teardown instead of at most one send batch. That waiter
runs from rds_tcp_accept_one() on the single-threaded krdsd workqueue
and holds rds_tcp_accept_lock and t_conn_path_lock while it waits, so
a duelling SYN accepted while its path is being torn down parks
accept processing for the duration of the teardown - for TCP bounded
by the (up to 5 s) drain loop in rds_tcp_conn_path_shutdown(). An IB
path's drain in rds_ib_conn_path_shutdown() has no round cap, but no
blocking waiter either: rds_tcp_reset_callbacks() is the only blocking
acquirer of these bits and waits only on its own TCP path, and the
fastpaths are trylock-and-back-off on both transports, so a long IB
drain lengthens only that path's own quiesce. The
window is narrow: the accept-side state check has to pass before the
teardown moves the path to RDS_CONN_DISCONNECTING.

Because krdsd is a single global workqueue, everything else queued
there - accept processing for other connections and network
namespaces, and the flush_workqueue(rds_wq) in rds_tcp_listen_stop()
during namespace teardown - waits behind the parked accept worker for
that time. It cannot deadlock, although the waits do point at each
other: the teardown blocks until the bit's holder releases it, and
the holder may be that krdsd accept worker. The holder finishes
without needing anything the teardown owns: the sync cancels
rds_tcp_reset_callbacks() issues target cp_send_w and cp_recv_w on
the path's ordered cp_wq, whose only execution slot is occupied by
the blocked cp_down_w itself, so they are pending at most and cancel
without flushing - a reliance on cp_wq being ordered that is now
noted next to those cancels (on
---truncated---

Affected products

VendorProductAffectedFixed
Linux Linux 2.6.37 5.10.271

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.

ReleasePackageFixed inAdvisory
Debian 14 linux 7.2.7-1 —
Debian 13 linux 6.12.111-1 —
Debian 12 linux 6.1.190-1 —
Debian 12 linux-6.12 6.12.111-1~deb12u1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1036.41 —
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1103.105 —
Ubuntu 26.04 LTS linux 7.0.0-42.42 USN-8959-1
Ubuntu 26.04 LTS linux-aws 7.0.0-1016.17 USN-8959-1
Ubuntu 26.04 LTS linux-azure 7.0.0-1020.21 USN-9019-1
Ubuntu 26.04 LTS linux-azure-fde 7.0.0-1019.19 USN-9020-1
Ubuntu 26.04 LTS linux-gcp 7.0.0-1016.18 USN-8959-1
Ubuntu 26.04 LTS linux-gke 7.0.0-1010.11 USN-9020-1
Ubuntu 26.04 LTS linux-ibm +1 7.0.0-1017.17 USN-8960-1, USN-8959-1
Ubuntu 26.04 LTS linux-nvidia +1 No fix yet —
Ubuntu 26.04 LTS linux-oracle 7.0.0-1015.16 USN-8959-1
Ubuntu 26.04 LTS linux-raspi 7.0.0-1023.23 USN-9021-1
Ubuntu 26.04 LTS linux-realtime 7.0.0-43.43.1 USN-9020-1
Ubuntu 26.04 LTS linux-riscv 7.0.0-42.42.1 —
Ubuntu 24.04 LTS linux 6.8.0-149.149 USN-9022-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1069.74 USN-9022-1
Ubuntu 24.04 LTS linux-aws-7.0 7.0.0-1017.18~24.04.1 USN-9020-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1073.82 USN-9022-1
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1071.78 USN-9039-1
Ubuntu 24.04 LTS linux-azure-fde-7.0 7.0.0-1019.19~24.04.1 USN-9020-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1073.81 USN-9022-1
Ubuntu 24.04 LTS linux-gcp-7.0 7.0.0-1017.19~24.04.1 USN-9020-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1068.77 USN-9022-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1053.57 USN-9023-1
Ubuntu 24.04 LTS linux-hwe-7.0 7.0.0-42.42~24.04.1 USN-8959-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1069.70 USN-9022-1
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-149.149.1 USN-9022-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1067.70 USN-9024-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1067.70.1 USN-9040-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1067.71 USN-9022-1
Ubuntu 24.04 LTS linux-oracle-7.0 7.0.0-1016.18~24.04.1 USN-9020-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1068.72 USN-9025-1
Ubuntu 24.04 LTS linux-riscv +32 No fix yet —
Ubuntu 24.04 LTS linux-riscv-7.0 7.0.0-42.42.1~24.04.1 —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1010.10 USN-9022-1
Ubuntu 22.04 LTS linux 5.15.0-202.212 USN-8961-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1119.126 USN-8961-1
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 5.15.0-1125.134 USN-8961-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 5.15.0-1124.133 USN-8962-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 5.15.0-1120.130 USN-8961-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-gke 5.15.0-1115.121 USN-8961-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1102.110 USN-8961-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 5.15.0-1113.117 USN-8961-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-intel-iotg 5.15.0-1114.120 USN-8961-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1111.116 USN-8961-1
Ubuntu 22.04 LTS linux-lowlatency 5.15.0-197.207 USN-8961-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-nvidia 5.15.0-1114.115 USN-8961-1
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1070.72 USN-8963-1
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1059.59 USN-8963-1
Ubuntu 22.04 LTS linux-oracle 5.15.0-1116.122 USN-8961-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1067.71~22.04.1 USN-9025-1
Ubuntu 22.04 LTS linux-raspi 5.15.0-1113.116 USN-9029-1
Ubuntu 22.04 LTS linux-riscv +34 No fix yet —
Show 18 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
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-1064.65 USN-9023-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 +1 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1111.115 USN-8961-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1118.127 USN-8961-1
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 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1069.74+fips1 USN-9023-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1073.82+fips1 USN-9022-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1073.81+fips1 USN-9023-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1119.126+fips1 USN-8961-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1125.134+fips1 USN-8961-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-202.212+fips1 USN-8961-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1120.130+fips1 USN-8961-1
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux +10 No fix yet —
Ubuntu Pro 20.04 LTS linux-aws-5.15 5.15.0-1119.126~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-azure-5.15 5.15.0-1125.134~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-azure-fde-5.15 5.15.0-1124.133~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-gcp-5.15 5.15.0-1120.130~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-hwe-5.15 5.15.0-202.212~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-ibm-5.15 5.15.0-1113.117~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-intel-iotg-5.15 5.15.0-1114.120~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-197.207~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1070.72~20.04.1 USN-8963-1
Ubuntu Pro 20.04 LTS linux-oracle-5.15 5.15.0-1116.122~20.04.1 USN-8961-1
Ubuntu Pro 20.04 LTS linux-riscv-5.15 5.15.0-1113.117~20.04.2 —
Ubuntu Pro 18.04 LTS linux +12 No fix yet —
Ubuntu Pro 16.04 LTS linux +7 No fix yet —
Ubuntu Pro 14.04 LTS linux +3 No fix yet —
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 kernel-64kb +8 6.12.0-160000.41.1 SUSE-SU-2026:24662-1
SLES for SAP 16.0 kernel-default-base 6.12.0-160000.41.1.160000.2.32 SUSE-SU-2026:24662-1
SLES 16.0 kernel-64kb +8 6.12.0-160000.41.1 SUSE-SU-2026:24662-1, SUSE-SU-2026:24651-1
SLES 16.0 kernel-default-base 6.12.0-160000.41.1.160000.2.32 SUSE-SU-2026:24662-1
SLE Micro 6.2 kernel-default-base 6.12.0-160000.41.1.160000.2.32 SUSE-SU-2026:24643-1
SLE Micro 6.2 kernel-rt +5 6.12.0-160000.41.1 SUSE-SU-2026:24648-1, SUSE-SU-2026:24643-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.1 kernel-default-base 6.4.0-159998.55.1.159998.21.41 SUSE-SU-2026:24619-1
SLE Micro 6.1 kernel-source +2 6.4.0-159998.55.1 SUSE-SU-2026:24619-1
SLE Micro 6.0 kernel-default-base 6.4.0-159998.55.1.159998.21.42 SUSE-SU-2026:24550-1
SLE Micro 6.0 kernel-source +2 6.4.0-159998.55.1 SUSE-SU-2026:24550-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed kernel-source 7.2.9-1.1 openSUSE-SU-2026:12074-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.189-236.399 +2 1:1.0-0.amzn2023 ALAS2023-2026-3336, ALAS2023-2026-3193, ALAS2023-2026-3192
Amazon Linux 2023 perf +12 1:6.1.189-236.399.amzn2023 ALAS2023-2026-3336
Amazon Linux 2023 perf6.12 +11 1:6.12.111-136.204.amzn2023 ALAS2023-2026-3193
Amazon Linux 2023 perf6.18 +12 1:6.18.54-121.166.amzn2023 ALAS2023-2026-3192

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 kernel 6.6.158.1-1 —

Advisories 28

References