In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix double-free of smc_spd_priv when tee() duplicates splice pipe buffer
smc_rx_splice() allocates one smc_spd_priv per pipe_buffer and stores the pointer in pipe_buffer.private. The pipe_buf_operations for these buffers used .get = generic_pipe_buf_get, which only increments the page reference count when tee(2) duplicates a pipe buffer. The smc_spd_priv pointer itself was not handled, so after tee() both the original and the cloned pipe_buffer share the same smc_spd_priv *.
When both pipes are subsequently released, smc_rx_pipe_buf_release() is called twice against the same object:
1st call: kfree(priv) sock_put(sk) smc_rx_update_cons() [correct] 2nd call: kfree(priv) sock_put(sk) smc_rx_update_cons() [UAF]
KASAN reports a slab-use-after-free in smc_rx_pipe_buf_release(), which then escalates to a NULL-pointer dereference and kernel panic via smc_rx_update_consumer() when it chases the freed priv->smc pointer:
BUG: KASAN: slab-use-after-free in smc_rx_pipe_buf_release+0x78/0x2a0 Read of size 8 at addr ffff888004a45740 by task smc_splice_tee_/74 Call Trace: <TASK> dump_stack_lvl+0x53/0x70 print_report+0xce/0x650 kasan_report+0xc6/0x100 smc_rx_pipe_buf_release+0x78/0x2a0 free_pipe_info+0xd4/0x130 pipe_release+0x142/0x160 __fput+0x1c6/0x490 __x64_sys_close+0x4f/0x90 do_syscall_64+0xa6/0x1a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK>
BUG: kernel NULL pointer dereference, address: 0000000000000020 RIP: 0010:smc_rx_update_consumer+0x8d/0x350 Call Trace: <TASK> smc_rx_pipe_buf_release+0x121/0x2a0 free_pipe_info+0xd4/0x130 pipe_release+0x142/0x160 __fput+0x1c6/0x490 __x64_sys_close+0x4f/0x90 do_syscall_64+0xa6/0x1a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Kernel panic - not syncing: Fatal exception
Beyond the memory-safety problem, duplicating an SMC splice buffer is semantically questionable: smc_rx_update_cons() would advance the consumer cursor twice for the same data, corrupting receive-window accounting. A refcount on smc_spd_priv could fix the double-free, but the cursor-accounting issue would still need to be addressed separately.
The .get callback is invoked by both tee(2) and splice_pipe_to_pipe() for partial transfers; both will now return -EFAULT. Users who need to duplicate SMC socket data must use a copy-based read path.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/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 22, 2026 |
| Ubuntu | — | Upgrade linux-image-gkeUpgrade linux-image-oracle-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-aws-64kUpgrade linux-image-kvm-5.15Upgrade linux-image-gkeopUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-oem-20.04cUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gke-5.15Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-azure-fips-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-nvidia-5.15Upgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-oem-22.04Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-5.15Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-generic-64kUpgrade linux-image-azure-fde-5.15Upgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-nvidia-tegraUpgrade linux-image-virtual-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-azure-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-fipsUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-generic-64k-5.15Upgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-lowlatency-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-6.8.0-136-fipsUpgrade linux-image-aws-fips-5.15Upgrade linux-image-aws-6.8Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-genericUpgrade linux-image-nvidia-6.8Upgrade linux-image-azureUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidiaUpgrade linux-image-raspiUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-intel-iotgUpgrade linux-image-gkeop-6.8Upgrade linux-image-intelUpgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-ibm-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-realtime-6.8.1Upgrade linux-image-realtimeUpgrade linux-image-raspi-5.15Upgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-5.15Upgrade linux-image-fips-6.8Upgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-virtualUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-aws-5.15Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-fips-5.15Upgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-azure-fips-6.8Upgrade linux-image-awsUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-oem-22.04bUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-azure-cvmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-oracleUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gkeop-5.15Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-laptop-23.10Upgrade linux-image-kvmUpgrade linux-image-gke-64kUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-generic-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-xilinxUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-ibm-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-raspi-6.8Upgrade linux-image-gcp-5.15Upgrade linux-image-virtual-5.15Upgrade linux-image-realtime-5.15Upgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-gcp-64kUpgrade linux-image-xilinx-6.8 | Jul 20, 2026 | Apr 22, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Apr 22, 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