Skip to content
OpenAdvisories
Critical · 9.8 CVE-2026-23450 EUVD-2026-18700GHSA-m7g4-hqc4-25c8

net/smc: fix NULL dereference and UAF in smc_tcp_syn_recv_sock()

Published Apr 3, 2026 · Updated Nov 10, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux 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.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-fips Package: linux-azure 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.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-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.2 Package: linux-azure-fde-6.8 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-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.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-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.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-edge Package: linux-ibm Package: linux-ibm-5.15 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-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-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-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-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.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi 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-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: Debian Ecosystem: Ubuntu

Description

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

net/smc: fix NULL dereference and UAF in smc_tcp_syn_recv_sock()

Syzkaller reported a panic in smc_tcp_syn_recv_sock() [1].

smc_tcp_syn_recv_sock() is called in the TCP receive path
(softirq) via icsk_af_ops->syn_recv_sock on the clcsock (TCP
listening socket). It reads sk_user_data to get the smc_sock
pointer. However, when the SMC listen socket is being closed
concurrently, smc_close_active() sets clcsock->sk_user_data
to NULL under sk_callback_lock, and then the smc_sock itself
can be freed via sock_put() in smc_release().

This leads to two issues:

1) NULL pointer dereference: sk_user_data is NULL when
accessed.
2) Use-after-free: sk_user_data is read as non-NULL, but the
smc_sock is freed before its fields (e.g., queued_smc_hs,
ori_af_ops) are accessed.

The race window looks like this (the syzkaller crash [1]
triggers via the SYN cookie path: tcp_get_cookie_sock() ->
smc_tcp_syn_recv_sock(), but the normal tcp_check_req() path
has the same race):

CPU A (softirq) CPU B (process ctx)

tcp_v4_rcv()
TCP_NEW_SYN_RECV:
sk = req->rsk_listener
sock_hold(sk)
/* No lock on listener */
smc_close_active():
write_lock_bh(cb_lock)
sk_user_data = NULL
write_unlock_bh(cb_lock)
...
smc_clcsock_release()
sock_put(smc->sk) x2
-> smc_sock freed!
tcp_check_req()
smc_tcp_syn_recv_sock():
smc = user_data(sk)
-> NULL or dangling
smc->queued_smc_hs
-> crash!

Note that the clcsock and smc_sock are two independent objects
with separate refcounts. TCP stack holds a reference on the
clcsock, which keeps it alive, but this does NOT prevent the
smc_sock from being freed.

Fix this by using RCU and refcount_inc_not_zero() to safely
access smc_sock. Since smc_tcp_syn_recv_sock() is called in
the TCP three-way handshake path, taking read_lock_bh on
sk_callback_lock is too heavy and would not survive a SYN
flood attack. Using rcu_read_lock() is much more lightweight.

- Set SOCK_RCU_FREE on the SMC listen socket so that
smc_sock freeing is deferred until after the RCU grace
period. This guarantees the memory is still valid when
accessed inside rcu_read_lock().
- Use rcu_read_lock() to protect reading sk_user_data.
- Use refcount_inc_not_zero(&smc->sk.sk_refcnt) to pin the
smc_sock. If the refcount has already reached zero (close
path completed), it returns false and we bail out safely.

Note: smc_hs_congested() has a similar lockless read of
sk_user_data without rcu_read_lock(), but it only checks for
NULL and accesses the global smc_hs_wq, never dereferencing
any smc_sock field, so it is not affected.

Reproducer was verified with mdelay injection and smc_run,
the issue no longer occurs with this patch applied.

[1] https://syzkaller.appspot.com/bug?extid=827ae2bfb3a3529333e9

Affected products

VendorProductAffectedFixed
Linux Linux 5.15.174 – < 5.15.203, 5.18 5.15.203

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 6.19.10-1 —
Debian 13 linux 6.12.85-1 —
Debian 12 linux 6.1.170-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1026.30 —
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1095.97 —
Ubuntu 25.10 linux 6.17.0-40.40 USN-8490-1
Ubuntu 25.10 linux-aws 6.17.0-1019.19 USN-8490-1
Ubuntu 25.10 linux-azure +1 No fix yet —
Ubuntu 25.10 linux-gcp 6.17.0-1020.22 USN-8490-1
Ubuntu 25.10 linux-oracle 6.17.0-1018.18 USN-8490-1
Ubuntu 25.10 linux-raspi 6.17.0-1021.21 USN-8546-1
Ubuntu 25.10 linux-realtime 6.17.0-1017.19 USN-8490-2
Ubuntu 25.10 linux-riscv 6.17.0-40.40.1 —
Ubuntu 24.04 LTS linux 6.8.0-134.134 USN-8492-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1060.63 USN-8492-1
Ubuntu 24.04 LTS linux-aws-6.17 6.17.0-1019.19~24.04.1 USN-8490-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1063.71 USN-8606-1
Ubuntu 24.04 LTS linux-azure-6.17 6.17.0-1021.21~24.04.1 USN-8604-1
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1062.69 USN-8607-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1063.69 USN-8492-1
Ubuntu 24.04 LTS linux-gcp-6.17 6.17.0-1020.22~24.04.1 USN-8490-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1058.64 USN-8492-2
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1045.48 USN-8492-2
Ubuntu 24.04 LTS linux-hwe-6.17 6.17.0-40.40~24.04.1 USN-8545-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1060.61 USN-8492-1
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-134.134.1 USN-8497-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1058.61 USN-8492-1
Ubuntu 24.04 LTS linux-nvidia-6.17 6.17.0-1026.26 USN-8508-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1058.61.1 USN-8492-2
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1029.30 USN-8498-1
Ubuntu 24.04 LTS linux-oem-6.17 6.17.0-1028.28 USN-8491-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1057.58 USN-8492-1
Ubuntu 24.04 LTS linux-oracle-6.17 +1 6.17.0-1018.18~24.04.1 USN-8605-1, USN-8490-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1060.64 USN-8492-4
Ubuntu 24.04 LTS linux-riscv +20 No fix yet —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1032.33 USN-8499-1
Ubuntu 22.04 LTS linux 5.15.0-185.195 USN-8493-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1111.118 USN-8493-1
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1060.63~22.04.1 USN-8492-2
Ubuntu 22.04 LTS linux-azure +1 5.15.0-1116.125 USN-8493-1
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1063.71~22.04.1 USN-8606-1
Ubuntu 22.04 LTS linux-azure-fde-6.8 6.8.0-1062.69~22.04.1 USN-8609-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1111.121 USN-8493-1
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1063.69~22.04.1 USN-8492-2
Ubuntu 22.04 LTS linux-gke 5.15.0-1107.113 USN-8493-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1094.102 USN-8493-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-136.136~22.04.1 USN-8619-1
Ubuntu 22.04 LTS linux-ibm 5.15.0-1105.109 USN-8493-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1060.61~22.04.1 USN-8492-2
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1106.112 USN-8493-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1103.108 USN-8493-1
Ubuntu 22.04 LTS linux-lowlatency 5.15.0-183.193 USN-8493-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-134.134.1~22.04.1 USN-8497-1
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1106.107 USN-8493-1
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1058.61~22.04.1 USN-8492-1
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1063.63 USN-8493-1
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1052.52 USN-8493-1
Ubuntu 22.04 LTS linux-oracle 5.15.0-1108.114 USN-8493-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1057.58~22.04.1 USN-8492-2
Ubuntu 22.04 LTS linux-raspi 5.15.0-1105.108 USN-8527-1
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-134.134~22.04.1 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1074.78 USN-8528-1
Show 13 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-2049.50 USN-8492-3
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1055.56 USN-8492-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.17 6.17.0-1017.19~24.04.1 USN-8490-2
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1103.105 USN-8493-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1110.119 USN-8493-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1055.56~22.04.1 USN-8492-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1060.63+fips1 USN-8492-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1062.69+fips1 USN-8492-5
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-134.134+fips1 USN-8492-5
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1063.69+fips1 USN-8492-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1111.118+fips1 USN-8493-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1116.125+fips1 USN-8547-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-185.195+fips1 USN-8493-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1111.121+fips1 USN-8493-1
Ubuntu Pro 26.04 LTS linux 7.0.0-30.30 LSN-0122-1
Ubuntu Pro 26.04 LTS linux-aws 7.0.0-1011.11 LSN-0122-1
Ubuntu Pro 26.04 LTS linux-azure 7.0.0-1012.12 LSN-0122-1
Ubuntu Pro 26.04 LTS linux-gcp 7.0.0-1010.10 LSN-0122-1
Ubuntu Pro 24.04 LTS linux 6.8.0-142.142 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-aws 6.8.0-1065.68 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-azure 6.8.0-1068.76 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-gcp 6.8.0-1069.77 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-gke 6.8.0-1064.72 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-ibm 6.8.0-1065.66 LSN-0122-1
Ubuntu Pro 24.04 LTS linux-oracle 6.8.0-1062.65 LSN-0122-1
Ubuntu Pro 22.04 LTS linux 5.15.0-202.212 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-aws 5.15.0-1119.126 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-aws-6.8 6.8.0-1065.68~22.04.1 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-azure 5.15.0-1125.134 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-gcp 5.15.0-1120.130 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-gcp-6.8 6.8.0-1069.77~22.04.1 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-gke 5.15.0-1115.121 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-hwe-6.8 6.8.0-149.149~22.04.1 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-ibm 5.15.0-1113.117 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-ibm-6.8 6.8.0-1066.67~22.04.1 LSN-0122-1
Ubuntu Pro 22.04 LTS linux-lowlatency 5.15.0-197.207 LSN-0122-1
Ubuntu Pro 20.04 LTS linux 5.4.0-245.265 LSN-0122-1
Ubuntu Pro 20.04 LTS linux-aws-5.15 5.15.0-1111.118~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-azure-5.15 +1 5.15.0-1116.125~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-gcp-5.15 5.15.0-1111.121~20.04.1 USN-8547-1
Ubuntu Pro 20.04 LTS linux-hwe-5.15 5.15.0-185.195~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-ibm-5.15 +1 5.15.0-1105.109~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-intel-iotg-5.15 5.15.0-1106.112~20.04.1 USN-8547-1
Ubuntu Pro 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-183.193~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1063.63~20.04.1 USN-8493-1
Ubuntu Pro 20.04 LTS linux-oracle-5.15 5.15.0-1108.114~20.04.1 USN-8493-2
Ubuntu Pro 18.04 LTS linux 4.15.0-260.272 LSN-0122-1
Ubuntu Pro 18.04 LTS linux-aws 4.15.0-1197.210 LSN-0122-1
Ubuntu Pro 18.04 LTS linux-azure-4.15 4.15.0-1207.222 LSN-0122-1
Ubuntu Pro 18.04 LTS linux-gcp-4.15 4.15.0-1190.207 LSN-0122-1
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-245.265~18.04.1 LSN-0122-1
Ubuntu Pro 18.04 LTS linux-oracle 4.15.0-1160.171 LSN-0122-1
Ubuntu Pro 16.04 LTS linux 4.4.0-291.325 LSN-0122-1
Ubuntu Pro 16.04 LTS linux-aws 4.4.0-1200.215 LSN-0122-1
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1197.210~16.04.1 LSN-0122-1
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1208.223~16.04.1 LSN-0122-1
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1190.207~16.04.1 LSN-0122-1
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-260.272~16.04.2 LSN-0122-1
ReleasePackageFixed inAdvisory
SLES 15 SP7 kernel-64kb +7 6.4.0-150700.53.55.1 SUSE-SU-2026:2238-1
SLES 15 SP7 kernel-default-base 6.4.0-150700.53.55.1.150700.17.33.1 SUSE-SU-2026:2238-1
SLES 15 SP6 kernel-64kb +6 6.4.0-150600.23.112.1 SUSE-SU-2026:2195-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.112.1.150600.12.52.1 SUSE-SU-2026:2195-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP6 kernel-default-base 6.4.0-150600.23.112.1.150600.12.52.1 SUSE-SU-2026:2195-1
SLES for SAP 15 SP6 kernel-docs +4 6.4.0-150600.23.112.1 SUSE-SU-2026:2195-1
SLE Micro 6.2 kernel-syms +1 6.12.0-160000.33.1 SUSE-SU-2026:21834-1
SLE Live Patching 15 SP7 kernel-default 6.4.0-150700.53.55.1 SUSE-SU-2026:2238-1
SLE Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_15 1-150700.15.3.1 SUSE-SU-2026:2238-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.112.1 SUSE-SU-2026:2195-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_26 1-150600.13.3.1 SUSE-SU-2026:2195-1

Advisories 36

References