In the Linux kernel, the following vulnerability has been resolved:
tcp: prevent concurrent execution of tcp_sk_exit_batch
Its possible that two threads call tcp_sk_exit_batch() concurrently, once from the cleanup_net workqueue, once from a task that failed to clone a new netns. In the latter case, error unwinding calls the exit handlers in reverse order for the 'failed' netns.
tcp_sk_exit_batch() calls tcp_twsk_purge(). Problem is that since commit b099ce2602d8 ("net: Batch inet_twsk_purge"), this function picks up twsk in any dying netns, not just the one passed in via exit_batch list.
This means that the error unwind of setup_net() can "steal" and destroy timewait sockets belonging to the exiting netns.
This allows the netns exit worker to proceed to call
WARN_ON_ONCE(!refcount_dec_and_test(&net->ipv4.tcp_death_row.tw_refcount));
without the expected 1 -> 0 transition, which then splats.
At same time, error unwind path that is also running inet_twsk_purge() will splat as well:
WARNING: .. at lib/refcount.c:31 refcount_warn_saturate+0x1ed/0x210 ... refcount_dec include/linux/refcount.h:351 [inline] inet_twsk_kill+0x758/0x9c0 net/ipv4/inet_timewait_sock.c:70 inet_twsk_deschedule_put net/ipv4/inet_timewait_sock.c:221 inet_twsk_purge+0x725/0x890 net/ipv4/inet_timewait_sock.c:304 tcp_sk_exit_batch+0x1c/0x170 net/ipv4/tcp_ipv4.c:3522 ops_exit_list+0x128/0x180 net/core/net_namespace.c:178 setup_net+0x714/0xb40 net/core/net_namespace.c:375 copy_net_ns+0x2f0/0x670 net/core/net_namespace.c:508 create_new_namespaces+0x3ea/0xb10 kernel/nsproxy.c:110
... because refcount_dec() of tw_refcount unexpectedly dropped to 0.
This doesn't seem like an actual bug (no tw sockets got lost and I don't see a use-after-free) but as erroneous trigger of debug check.
Add a mutex to force strict ordering: the task that calls tcp_twsk_purge() blocks other task from doing final _dec_and_test before mutex-owner has removed all tw sockets of dying netns.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade perfUpgrade kernel-tools-develUpgrade kernelUpgrade kernel-develUpgrade kernel-libbpf-staticUpgrade bpftoolUpgrade kernel-debuginfoUpgrade kernel-modules-extra-commonUpgrade python3-perfUpgrade kernel-libbpf-develUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool-debuginfoUpgrade kernel-libbpfUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.109-118.189Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade python3-perf-debuginfo | Oct 16, 2025 | Sep 4, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Oct 7, 2024 | Sep 4, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Sep 4, 2024 |
| Suse | — | Upgrade kernel-defaultUpgrade kernel-devel-azureUpgrade kernel-azure-develUpgrade kernel-source-vanillaUpgrade kernel-rt-extraUpgrade kselftests-kmp-64kbUpgrade cluster-md-kmp-64kbUpgrade kernel-sourceUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-rtUpgrade kernel-syms-azureUpgrade kernel-azure-optionalUpgrade kernel-default-optionalUpgrade kernel-kvmsmallUpgrade dtb-caviumUpgrade kernel-default-extraUpgrade dtb-nvidiaUpgrade dtb-rockchipUpgrade kernel-azureUpgrade dtb-amlogicUpgrade kernel-default-vdsoUpgrade kernel-debug-vdsoUpgrade kernel-macrosUpgrade kernel-devel-rtUpgrade dtb-qcomUpgrade gfs2-kmp-rtUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade kernel-rt-develUpgrade kernel-develUpgrade dtb-xilinxUpgrade dtb-armUpgrade dtb-sprdUpgrade dtb-mediatekUpgrade dlm-kmp-64kbUpgrade kernel-rt-vdsoUpgrade kernel-default-base-rebuildUpgrade dtb-exynosUpgrade dtb-alteraUpgrade kernel-obs-buildUpgrade kernel-obs-qaUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade kernel-zfcpdumpUpgrade kernel-syms-rtUpgrade kernel-64kbUpgrade kselftests-kmp-azureUpgrade kernel-symsUpgrade kernel-rt_debugUpgrade dtb-marvellUpgrade dtb-lgUpgrade dtb-freescaleUpgrade dlm-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-64kb-extraUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kernel-64kb-optionalUpgrade dtb-appleUpgrade kernel-docs-htmlUpgrade kernel-azure-vdsoUpgrade dtb-amazonUpgrade ocfs2-kmp-defaultUpgrade kernel-64kb-livepatch-develUpgrade gfs2-kmp-defaultUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade kernel-azure-extraUpgrade dtb-hisiliconUpgrade dtb-amdUpgrade kernel-rt_debug-develUpgrade kernel-rt-optionalUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmall-livepatch-develUpgrade reiserfs-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade kernel-docsUpgrade kernel-source-rtUpgrade kernel-default-livepatchUpgrade kernel-default-baseUpgrade gfs2-kmp-64kbUpgrade dtb-broadcomUpgrade dtb-apmUpgrade kselftests-kmp-rtUpgrade kernel-rt-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-64kb-develUpgrade dtb-socionextUpgrade dtb-allwinnerUpgrade dlm-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-default-develUpgrade kernel-debug-develUpgrade kernel-debugUpgrade dtb-renesas | Dec 5, 2025 | Oct 8, 2024 |
| Ubuntu | — | Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-azureUpgrade linux-image-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-virtualUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-6.8.0-1018-oemUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1020-awsUpgrade linux-image-lowlatency-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-6.8Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-raspiUpgrade linux-image-gkeUpgrade linux-image-oem-22.04Upgrade linux-image-gkeopUpgrade linux-image-genericUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-50-genericUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-oem-22.04dUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-22.04bUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-awsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-kvmUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-6.8.0-1020-azure-fde | Dec 13, 2024 | Sep 4, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Sep 4, 2024 |
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