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
CVSS Details
- CVSS 3.1 Base Score: 9.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 3, 2026 | May 3, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Apr 3, 2026 |
| Ubuntu | — | Upgrade linux-image-kvmUpgrade linux-image-generic-6.8Upgrade linux-image-nvidia-hwe-24.04Upgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-2049-raspi-realtimeUpgrade linux-image-6.8.0-1062-azure-fipsUpgrade linux-image-6.8.0-1057-oracle-64kUpgrade linux-image-5.15.0-1116-azure-fdeUpgrade linux-image-5.15.0-1107-gkeUpgrade linux-image-5.15.0-1052-nvidia-tegra-igxUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-gke-64k-6.8Upgrade linux-image-azure-6.17Upgrade linux-image-azure-6.8Upgrade linux-image-5.15.0-1106-nvidia-lowlatencyUpgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1060-ibmUpgrade linux-image-6.17.0-40-genericUpgrade linux-image-5.15.0-1111-awsUpgrade linux-image-5.15.0-1103-kvmUpgrade linux-image-raspi-realtimeUpgrade linux-image-raspi-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1029-nvidia-tegraUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-ibm-6.8Upgrade linux-image-5.15.0-1116-azure-fipsUpgrade linux-image-5.15.0-1111-aws-fipsUpgrade linux-image-5.15.0-1105-ibmUpgrade linux-image-gcp-64kUpgrade linux-image-fips-5.15Upgrade linux-image-aws-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-raspiUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-64k-hwe-24.04Upgrade linux-image-intelUpgrade linux-image-nvidia-64kUpgrade linux-image-laptop-23.10Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1063-gcp-64kUpgrade linux-image-6.8.0-1045-gkeopUpgrade linux-image-6.8.0-134-generic-64kUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-6.8.0-134-lowlatency-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-1058-gke-64kUpgrade linux-image-5.15.0-1052-nvidia-tegra-igx-rtUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1058-nvidia-lowlatency-64kUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-6.17.0-1018-oracleUpgrade linux-image-6.17.0-1018-azure-fdeUpgrade linux-image-5.15.0-185-generic-64kUpgrade linux-image-5.15.0-1105-raspiUpgrade linux-image-5.15.0-1103-intel-iot-realtimeUpgrade linux-image-xilinxUpgrade linux-image-virtual-6.17Upgrade linux-image-virtualUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.8.0-1060-awsUpgrade linux-image-5.15.0-185-generic-lpaeUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-6.8.0-1060-aws-fipsUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.17.0-1020-gcp-64kUpgrade linux-image-realtime-5.15Upgrade linux-image-raspi-6.17Upgrade linux-image-oem-20.04bUpgrade linux-image-azure-fips-6.8Upgrade linux-image-azureUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-5.15Upgrade linux-image-generic-64kUpgrade linux-image-6.17.0-1018-oracle-64kUpgrade linux-image-5.15.0-185-genericUpgrade linux-image-5.15.0-183-lowlatencyUpgrade linux-image-5.15.0-1106-nvidiaUpgrade linux-image-virtual-5.15Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-realtime-6.17Upgrade linux-image-nvidia-tegraUpgrade linux-image-gke-6.8Upgrade linux-image-aws-lts-22.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-6.17Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-6.8.0-1058-nvidiaUpgrade linux-image-6.8.0-1029-nvidia-tegra-rtUpgrade linux-image-6.17.0-40-generic-64kUpgrade linux-image-5.15.0-185-fipsUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-ibm-classicUpgrade linux-image-gkeopUpgrade linux-image-gkeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-6.17.0-1021-raspiUpgrade linux-image-kvm-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-24.04dUpgrade linux-image-oem-24.04cUpgrade linux-image-oem-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-64k-6.17Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-gcpUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-azure-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-6.8.1-1055-realtimeUpgrade linux-image-6.17.0-1028-oemUpgrade linux-image-6.8.0-1063-gcp-fipsUpgrade linux-image-6.17.0-1020-gcpUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-realtimeUpgrade linux-image-5.15.0-183-lowlatency-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-fde-6.17Upgrade linux-image-lowlatency-64kUpgrade linux-image-aws-fips-5.15Upgrade linux-image-5.15.0-1063-nvidia-tegra-rtUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-1060-raspiUpgrade linux-image-ibm-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-64k-5.15Upgrade linux-image-azure-fde-5.15Upgrade linux-image-5.15.0-1116-azureUpgrade linux-image-6.8.0-1058-gkeUpgrade linux-image-5.15.0-1111-gcpUpgrade linux-image-6.8.0-1060-aws-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-5.15.0-1063-nvidia-tegraUpgrade linux-image-5.15.0-1111-aws-64kUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-oracleUpgrade linux-image-gkeop-6.8Upgrade linux-image-5.15.0-1108-oracleUpgrade linux-image-nvidia-6.17Upgrade linux-image-azure-fipsUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-134-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-5.15.0-1110-realtimeUpgrade linux-image-6.17.0-1021-azureUpgrade linux-image-azure-cvmUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-6.8.0-134-lowlatencyUpgrade linux-image-gcp-fipsUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-fipsUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-oracle-5.15Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracle-6.17Upgrade linux-image-gcp-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-ibmUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-64k-6.17Upgrade linux-image-aws-64k-6.17Upgrade linux-image-gcp-6.8Upgrade linux-image-5.15.0-1111-gcp-fipsUpgrade linux-image-generic-64k-5.15Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-5.15Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-gke-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-6.8.0-1063-gcpUpgrade linux-image-awsUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.17.0-1019-aws-64kUpgrade linux-image-5.15.0-1074-xilinx-zynqmpUpgrade linux-image-generic-64k-6.17Upgrade linux-image-raspi-nolpaeUpgrade linux-image-generic-64k-6.8Upgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-6.17.0-1019-awsUpgrade linux-image-oem-6.17Upgrade linux-image-azure-fdeUpgrade linux-image-oem-22.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.17.0-1026-nvidia-64kUpgrade linux-image-nvidiaUpgrade linux-image-6.17.0-1026-nvidiaUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-virtual-6.8Upgrade linux-image-5.15.0-1106-intel-iotgUpgrade linux-image-6.17.0-1017-realtimeUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1058-nvidia-lowlatencyUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1058-nvidia-64kUpgrade linux-image-generic-5.15Upgrade linux-image-oem-24.04bUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1057-oracleUpgrade linux-image-6.8.0-134-genericUpgrade linux-image-azure-fips-5.15Upgrade linux-image-gcp-6.17Upgrade linux-image-generic-6.17Upgrade linux-image-5.15.0-1094-gkeop | Jul 1, 2026 | Apr 3, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Apr 3, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub