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
| 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-5.15.0-1106-nvidia-lowlatencyUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-5.15Upgrade linux-image-5.15.0-1103-kvmUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-azure-6.17Upgrade linux-image-gkeop-5.15Upgrade linux-image-azure-fips-6.8Upgrade linux-image-aws-5.15Upgrade linux-image-xilinxUpgrade linux-image-realtime-5.15Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.1-1055-realtimeUpgrade linux-image-6.8.0-2049-raspi-realtimeUpgrade linux-image-6.8.0-1057-oracle-64kUpgrade linux-image-6.17.0-1028-oemUpgrade linux-image-5.15.0-1116-azure-fdeUpgrade linux-image-5.15.0-1052-nvidia-tegra-igxUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-24.04dUpgrade linux-image-oem-24.04cUpgrade linux-image-nvidia-64k-6.17Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-gcpUpgrade linux-image-azure-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-1107-gkeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-azure-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-virtual-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1062-azure-fipsUpgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-64k-hwe-24.04Upgrade linux-image-intelUpgrade linux-image-gcp-64kUpgrade linux-image-fips-5.15Upgrade linux-image-aws-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-oracle-64k-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-6.8.0-134-lowlatency-64kUpgrade linux-image-nvidia-hwe-24.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-nvidia-tegraUpgrade linux-image-kvm-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-generic-64kUpgrade linux-image-aws-64kUpgrade linux-image-6.17.0-1021-raspiUpgrade 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-realtime-6.17Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-aws-6.17Upgrade linux-image-aws-lts-22.04Upgrade linux-image-aws-fips-6.8Upgrade 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-virtual-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-gkeopUpgrade linux-image-gke-6.8Upgrade linux-image-gkeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-raspiUpgrade linux-image-5.15.0-185-generic-lpaeUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-6.8.0-1060-awsUpgrade linux-image-6.17.0-1020-gcp-64kUpgrade linux-image-6.17.0-1018-azure-fdeUpgrade linux-image-5.15.0-1105-raspiUpgrade linux-image-5.15.0-1103-intel-iot-realtimeUpgrade linux-image-virtual-6.17Upgrade linux-image-virtualUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-raspi-6.17Upgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1060-aws-fipsUpgrade linux-image-5.15.0-185-generic-64kUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-ibm-6.8Upgrade linux-image-azureUpgrade linux-image-6.17.0-1018-oracleUpgrade linux-image-kvmUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-generic-6.8Upgrade linux-image-azure-lts-22.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1058-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1058-gke-64kUpgrade linux-image-5.15.0-1052-nvidia-tegra-igx-rtUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-134-generic-64kUpgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade 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-1029-nvidia-tegraUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-134-lowlatencyUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-azure-cvmUpgrade linux-image-lowlatency-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-5.15.0-1074-xilinx-zynqmpUpgrade linux-image-6.8.0-134-fipsUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.17.0-1019-aws-64kUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-5.15.0-1116-azureUpgrade linux-image-6.8.0-1063-gcpUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-awsUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-gke-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-6.8.0-1057-oracleUpgrade linux-image-6.8.0-134-genericUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gcp-6.17Upgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-1063-gcp-fipsUpgrade linux-image-5.15.0-1094-gkeopUpgrade linux-image-azure-fips-5.15Upgrade linux-image-nvidia-6.8Upgrade linux-image-generic-6.17Upgrade linux-image-lowlatency-64kUpgrade linux-image-azure-fde-6.17Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-lowlatency-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1060-raspiUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-1060-aws-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-aws-fips-5.15Upgrade linux-image-gcp-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-fipsUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-oracle-64k-6.17Upgrade linux-image-gkeop-6.8Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-ibm-5.15Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.15.0-1108-oracleUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.17.0-1019-awsUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-azure-fdeUpgrade linux-image-generic-5.15Upgrade linux-image-6.17.0-1026-nvidiaUpgrade linux-image-nvidia-6.17Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-nvidiaUpgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-azure-fde-5.15Upgrade linux-image-6.8.0-1058-nvidia-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-oracle-6.17Upgrade linux-image-oracle-5.15Upgrade linux-image-oem-24.04bUpgrade linux-image-generic-64k-6.17Upgrade linux-image-ibmUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-realtimeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1111-gcp-fipsUpgrade linux-image-6.17.0-1020-gcpUpgrade linux-image-gcp-6.8Upgrade linux-image-6.17.0-1026-nvidia-64kUpgrade linux-image-generic-64k-5.15Upgrade linux-image-5.15.0-183-lowlatency-64kUpgrade linux-image-6.8.0-1058-nvidia-lowlatencyUpgrade linux-image-raspi-nolpaeUpgrade linux-image-aws-64k-6.17Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1063-nvidia-tegraUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-oem-6.17Upgrade linux-image-5.15.0-1111-aws-64kUpgrade linux-image-5.15.0-1111-gcpUpgrade linux-image-5.15.0-1110-realtimeUpgrade linux-image-6.8.0-1058-gkeUpgrade linux-image-oracleUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.17.0-1021-azureUpgrade linux-image-6.17.0-1017-realtimeUpgrade linux-image-virtual-6.8Upgrade linux-image-5.15.0-1106-intel-iotgUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-5.15.0-1063-nvidia-tegra-rtUpgrade linux-image-lowlatency-hwe-22.04 | 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 |
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