In the Linux kernel, the following vulnerability has been resolved:
xfrm: always flush state and policy upon NETDEV_UNREGISTER event
syzbot is reporting that "struct xfrm_state" refcount is leaking.
unregister_netdevice: waiting for netdevsim0 to become free. Usage count = 2 ref_tracker: netdev@ffff888052f24618 has 1/1 users at __netdev_tracker_alloc include/linux/netdevice.h:4400 [inline] netdev_tracker_alloc include/linux/netdevice.h:4412 [inline] xfrm_dev_state_add+0x3a5/0x1080 net/xfrm/xfrm_device.c:316 xfrm_state_construct net/xfrm/xfrm_user.c:986 [inline] xfrm_add_sa+0x34ff/0x5fa0 net/xfrm/xfrm_user.c:1022 xfrm_user_rcv_msg+0x58e/0xc00 net/xfrm/xfrm_user.c:3507 netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2550 xfrm_netlink_rcv+0x71/0x90 net/xfrm/xfrm_user.c:3529 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline] netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1344 netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1894 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] ____sys_sendmsg+0xa5d/0xc30 net/socket.c:2592 ___sys_sendmsg+0x134/0x1d0 net/socket.c:2646 __sys_sendmsg+0x16d/0x220 net/socket.c:2678 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f
This is because commit d77e38e612a0 ("xfrm: Add an IPsec hardware offloading API") implemented xfrm_dev_unregister() as no-op despite xfrm_dev_state_add() from xfrm_state_construct() acquires a reference to "struct net_device". I guess that that commit expected that NETDEV_DOWN event is fired before NETDEV_UNREGISTER event fires, and also assumed that xfrm_dev_state_add() is called only if (dev->features & NETIF_F_HW_ESP) != 0.
Sabrina Dubroca identified steps to reproduce the same symptoms as below.
echo 0 > /sys/bus/netdevsim/new_device dev=$(ls -1 /sys/bus/netdevsim/devices/netdevsim0/net/) ip xfrm state add src 192.168.13.1 dst 192.168.13.2 proto esp \ spi 0x1000 mode tunnel aead 'rfc4106(gcm(aes))' $key 128 \ offload crypto dev $dev dir out ethtool -K $dev esp-hw-offload off echo 0 > /sys/bus/netdevsim/del_device
Like these steps indicate, the NETIF_F_HW_ESP bit can be cleared after xfrm_dev_state_add() acquired a reference to "struct net_device". Also, xfrm_dev_state_add() does not check for the NETIF_F_HW_ESP bit when acquiring a reference to "struct net_device".
Commit 03891f820c21 ("xfrm: handle NETDEV_UNREGISTER for xfrm device") re-introduced the NETDEV_UNREGISTER event to xfrm_dev_event(), but that commit for unknown reason chose to share xfrm_dev_down() between the NETDEV_DOWN event and the NETDEV_UNREGISTER event. I guess that that commit missed the behavior in the previous paragraph.
Therefore, we need to re-introduce xfrm_dev_unregister() in order to release the reference to "struct net_device" by unconditionally flushing state and policy.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade bpftool6.18-debuginfoUpgrade kernel6.18-libbpf-develUpgrade kernel6.18Upgrade perf6.18-debuginfoUpgrade kernel6.18-libbpfUpgrade bpftool6.18Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.18-headersUpgrade perf6.18Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.18-debuginfoUpgrade kernel-livepatch-6.18.16-18.222Upgrade kernel6.18-libbpf-debuginfoUpgrade kernel6.18-tools-develUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-develUpgrade python3-perf6.18Upgrade kernel6.18-toolsUpgrade kernel6.18-modules-extraUpgrade python3-perf6.18-debuginfoUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18-libbpf-static | May 19, 2026 | May 6, 2026 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | May 6, 2026 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1060-aws-fipsUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1063-gcpUpgrade linux-image-6.8.0-134-lowlatency-64kUpgrade linux-image-generic-64kUpgrade linux-image-aws-6.8Upgrade linux-image-virtualUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-6.8.0-134-generic-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-ibm-classicUpgrade linux-image-gkeop-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1029-nvidia-tegraUpgrade linux-image-lowlatency-64kUpgrade linux-image-genericUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1057-oracleUpgrade linux-image-oem-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-1058-nvidia-64kUpgrade linux-image-6.8.0-1060-raspiUpgrade linux-image-fipsUpgrade linux-image-azure-6.8Upgrade linux-image-gkeopUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-nvidia-tegraUpgrade linux-image-nvidiaUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-aws-64kUpgrade linux-image-6.8.0-134-fipsUpgrade linux-image-ibm-6.8Upgrade linux-image-ibmUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1058-nvidia-lowlatencyUpgrade linux-image-6.8.0-1063-gcp-64kUpgrade linux-image-6.8.0-1058-gke-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-6.8.0-2049-raspi-realtimeUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1060-awsUpgrade linux-image-virtual-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-awsUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-azure-fipsUpgrade linux-image-azure-fde-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-oem-20.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-kvmUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1045-gkeopUpgrade linux-image-6.8.0-1058-nvidia-lowlatency-64kUpgrade linux-image-gcpUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-1060-aws-64kUpgrade linux-image-6.8.0-1029-nvidia-tegra-rtUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-20.04cUpgrade linux-image-oem-22.04dUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-oracle-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gke-64kUpgrade linux-image-gkeUpgrade linux-image-xilinx-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1057-oracle-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-realtimeUpgrade linux-image-gcp-fipsUpgrade linux-image-azureUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-6.8.0-1058-gkeUpgrade linux-image-azure-fdeUpgrade linux-image-gcp-6.8Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-laptop-23.10Upgrade linux-image-6.8.1-1055-realtimeUpgrade linux-image-6.8.0-1060-ibmUpgrade linux-image-gke-6.8Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1062-azure-fipsUpgrade linux-image-6.8.0-1058-nvidiaUpgrade linux-image-6.8.0-134-lowlatencyUpgrade linux-image-6.8.0-134-genericUpgrade linux-image-6.8.0-1063-gcp-fipsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-20.04dUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-xilinx | Jul 2, 2026 | Jul 1, 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