In the Linux kernel, the following vulnerability has been resolved:
tcp: Use refcount_inc_not_zero() in tcp_twsk_unique().
Anderson Nascimento reported a use-after-free splat in tcp_twsk_unique() with nice analysis.
Since commit ec94c2696f0b ("tcp/dccp: avoid one atomic operation for timewait hashdance"), inet_twsk_hashdance() sets TIME-WAIT socket's sk_refcnt after putting it into ehash and releasing the bucket lock.
Thus, there is a small race window where other threads could try to reuse the port during connect() and call sock_hold() in tcp_twsk_unique() for the TIME-WAIT socket with zero refcnt.
If that happens, the refcnt taken by tcp_twsk_unique() is overwritten and sock_put() will cause underflow, triggering a real use-after-free somewhere else.
To avoid the use-after-free, we need to use refcount_inc_not_zero() in tcp_twsk_unique() and give up on reusing the port if it returns false.
[0]: refcount_t: addition on 0; use-after-free. WARNING: CPU: 0 PID: 1039313 at lib/refcount.c:25 refcount_warn_saturate+0xe5/0x110 CPU: 0 PID: 1039313 Comm: trigger Not tainted 6.8.6-200.fc39.x86_64 #1 Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.21805430.B64.2305221830 05/22/2023 RIP: 0010:refcount_warn_saturate+0xe5/0x110 Code: 42 8e ff 0f 0b c3 cc cc cc cc 80 3d aa 13 ea 01 00 0f 85 5e ff ff ff 48 c7 c7 f8 8e b7 82 c6 05 96 13 ea 01 01 e8 7b 42 8e ff <0f> 0b c3 cc cc cc cc 48 c7 c7 50 8f b7 82 c6 05 7a 13 ea 01 01 e8 RSP: 0018:ffffc90006b43b60 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffff888009bb3ef0 RCX: 0000000000000027 RDX: ffff88807be218c8 RSI: 0000000000000001 RDI: ffff88807be218c0 RBP: 0000000000069d70 R08: 0000000000000000 R09: ffffc90006b439f0 R10: ffffc90006b439e8 R11: 0000000000000003 R12: ffff8880029ede84 R13: 0000000000004e20 R14: ffffffff84356dc0 R15: ffff888009bb3ef0 FS: 00007f62c10926c0(0000) GS:ffff88807be00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000020ccb000 CR3: 000000004628c005 CR4: 0000000000f70ef0 PKRU: 55555554 Call Trace: <TASK> ? refcount_warn_saturate+0xe5/0x110 ? __warn+0x81/0x130 ? refcount_warn_saturate+0xe5/0x110 ? report_bug+0x171/0x1a0 ? refcount_warn_saturate+0xe5/0x110 ? handle_bug+0x3c/0x80 ? exc_invalid_op+0x17/0x70 ? asm_exc_invalid_op+0x1a/0x20 ? refcount_warn_saturate+0xe5/0x110 tcp_twsk_unique+0x186/0x190 __inet_check_established+0x176/0x2d0 __inet_hash_connect+0x74/0x7d0 ? __pfx___inet_check_established+0x10/0x10 tcp_v4_connect+0x278/0x530 __inet_stream_connect+0x10f/0x3d0 inet_stream_connect+0x3a/0x60 __sys_connect+0xa8/0xd0 __x64_sys_connect+0x18/0x20 do_syscall_64+0x83/0x170 entry_SYSCALL_64_after_hwframe+0x78/0x80 RIP: 0033:0x7f62c11a885d Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d a3 45 0c 00 f7 d8 64 89 01 48 RSP: 002b:00007f62c1091e58 EFLAGS: 00000296 ORIG_RAX: 000000000000002a RAX: ffffffffffffffda RBX: 0000000020ccb004 RCX: 00007f62c11a885d RDX: 0000000000000010 RSI: 0000000020ccb000 RDI: 0000000000000003 RBP: 00007f62c1091e90 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000296 R12: 00007f62c10926c0 R13: ffffffffffffff88 R14: 0000000000000000 R15: 00007ffe237885b0 </TASK>
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 |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-debug-modules-extraUpgrade kernel-64k-debug-modulesUpgrade kernel-64k-debug-develUpgrade kernel-rt-kvmUpgrade kernel-modulesUpgrade perfUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdumpUpgrade kernel-uki-virtUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-debug-uki-virtUpgrade kernel-zfcpdump-devel-matchedUpgrade rvUpgrade kernel-rt-debug-modules-coreUpgrade python3-perfUpgrade kernel-develUpgrade kernel-rt-develUpgrade kernel-coreUpgrade kernel-rt-coreUpgrade kernel-64k-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-64k-debug-modules-coreUpgrade kernel-docUpgrade kernel-toolsUpgrade libperfUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade kernel-tools-libs-develUpgrade kernel-rt-debugUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-coreUpgrade kernel-64k-coreUpgrade kernel-tools-libsUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-modules-extraUpgrade kernel-64k-modules-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-headersUpgrade kernel-zfcpdump-modulesUpgrade kernel-cross-headersUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-modules-coreUpgrade kernel-64k-devel-matchedUpgrade kernelUpgrade kernel-64k-develUpgrade kernel-debug-modules-extraUpgrade kernel-debug-modulesUpgrade bpftoolUpgrade rtlaUpgrade kernel-abi-stablelistsUpgrade kernel-64k-debugUpgrade kernel-rt-modules-coreUpgrade kernel-64kUpgrade kernel-modules-extraUpgrade kernel-64k-debug-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-debugUpgrade kernel-64k-modules | Aug 12, 2024 | May 30, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-toolsUpgrade kernel-develUpgrade python-perfUpgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-livepatch-5.10.217-205.860Upgrade perfUpgrade bpftool-debuginfoUpgrade kernel-tools-develUpgrade bpftoolUpgrade kernel-livepatch-5.15.160-104.158Upgrade kernel-debuginfo-common-x86_64Upgrade kernel | Jun 12, 2024 | May 30, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-develUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpfUpgrade python3-perf-debuginfoUpgrade kernelUpgrade kernel-headersUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade perfUpgrade python3-perfUpgrade kernel-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-toolsUpgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.1.91-99.172 | Feb 17, 2025 | May 30, 2024 |
| Debian | — | Upgrade linux | Jun 4, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade python3-perfUpgrade kernel | Oct 8, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel | Oct 8, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Oct 9, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp8 | — | Upgrade kernel-develUpgrade perfUpgrade kernel-toolsUpgrade python3-perfUpgrade python-perfUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-headersUpgrade bpftool | Jan 21, 2025 | May 30, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-tools | Oct 8, 2024 | May 30, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | May 30, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Jul 25, 2024 | May 30, 2024 |
| Rocky_linux | — | Upgrade kernel-rt-debug-kvmUpgrade bpftool-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade rtlaUpgrade kernel-debug-uki-virtUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-uki-virtUpgrade kernel-coreUpgrade kernel-modules-coreUpgrade kernel-tools-libsUpgrade kernel-debug-debuginfoUpgrade kernel-debug-modulesUpgrade kernel-develUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-debugUpgrade kernel-rt-debug-modules-coreUpgrade kernel-headersUpgrade kernel-rt-debugUpgrade kernel-modulesUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-develUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-develUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdumpUpgrade python3-perfUpgrade kernel-rt-coreUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-modulesUpgrade perf-debuginfoUpgrade kernel-rt-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade rvUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debuginfoUpgrade kernel-cross-headersUpgrade kernel-debug-modules-extraUpgrade libperf-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-kvmUpgrade kernel-toolsUpgrade kernel-debug-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-coreUpgrade kernel-rtUpgrade libperfUpgrade kernel-rt-modulesUpgrade kernel-rt-modules-coreUpgrade kernelUpgrade perfUpgrade kernel-tools-libs-develUpgrade kernel-devel-matched | Jul 29, 2024 | May 30, 2024 |
| Suse | — | Upgrade kernel-64kb-develUpgrade kernel-source-azureUpgrade kernel-64kb-extraUpgrade kernel-debugUpgrade dtb-mediatekUpgrade reiserfs-kmp-azureUpgrade gfs2-kmp-64kbUpgrade kernel-azure-optionalUpgrade kernel-devel-rtUpgrade dtb-allwinnerUpgrade dtb-lgUpgrade kernel-default-vdsoUpgrade kernel-source-vanillaUpgrade dlm-kmp-rtUpgrade dtb-amdUpgrade kernel-default-livepatch-develUpgrade kernel-rt-develUpgrade kernel-default-base-rebuildUpgrade kernel-rt-livepatchUpgrade gfs2-kmp-defaultUpgrade kernel-default-baseUpgrade kernel-sourceUpgrade dtb-caviumUpgrade dtb-sprdUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-alteraUpgrade kernel-symsUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-rtUpgrade dtb-exynosUpgrade cluster-md-kmp-64kbUpgrade dtb-armUpgrade dtb-rockchipUpgrade kernel-debug-develUpgrade kernel-preemptUpgrade gfs2-kmp-azureUpgrade dtb-hisiliconUpgrade kernel-develUpgrade kselftests-kmp-64kbUpgrade dtb-xilinxUpgrade dlm-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade kernel-64kb-optionalUpgrade dtb-renesasUpgrade ocfs2-kmp-defaultUpgrade kernel-preempt-develUpgrade kernel-default-optionalUpgrade kernel-64kb-livepatch-develUpgrade dtb-qcomUpgrade kernel-rt_debug-develUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade kernel-default-develUpgrade kernel-debug-vdsoUpgrade kernel-rt-vdsoUpgrade dtb-amazonUpgrade ocfs2-kmp-64kbUpgrade kernel-source-rtUpgrade dtb-freescaleUpgrade kernel-azure-extraUpgrade dlm-kmp-defaultUpgrade kernel-rt-optionalUpgrade kernel-syms-rtUpgrade dlm-kmp-azureUpgrade kselftests-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade kernel-azureUpgrade dtb-marvellUpgrade kernel-docs-htmlUpgrade kernel-obs-buildUpgrade cluster-md-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-macrosUpgrade kernel-kvmsmall-develUpgrade kernel-devel-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-64kbUpgrade dtb-socionextUpgrade kernel-rt_debugUpgrade kernel-kvmsmallUpgrade kernel-syms-azureUpgrade kernel-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-broadcomUpgrade kernel-azure-vdsoUpgrade kernel-azure-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-extraUpgrade kernel-defaultUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-rtUpgrade kselftests-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-docsUpgrade kernel-default-livepatchUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade dtb-appleUpgrade gfs2-kmp-rtUpgrade dtb-nvidiaUpgrade dtb-apmUpgrade reiserfs-kmp-64kbUpgrade kernel-default-extra | Jul 10, 2024 | May 30, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1067-awsUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1129-oracleUpgrade linux-image-5.15.0-1070-azureUpgrade linux-image-ibm-classicUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.4.0-192-genericUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.4.0-1135-azureUpgrade linux-image-5.15.0-118-generic-lpaeUpgrade linux-image-5.15.0-1050-gkeopUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1062-intel-iotgUpgrade linux-image-5.15.0-118-generic-64kUpgrade linux-image-5.15.0-118-lowlatency-64kUpgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-5.15.0-1066-gcpUpgrade linux-image-bluefieldUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-lts-20.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-6.8.0-1012-azureUpgrade linux-image-5.4.0-1130-awsUpgrade linux-image-5.15.0-1062-nvidiaUpgrade linux-image-5.4.0-1114-raspiUpgrade linux-image-awsUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-118-genericUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-oracleUpgrade linux-image-5.15.0-1064-kvmUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-5.4.0-1049-xilinx-zynqmpUpgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1065-oracleUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-kvmUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-gkeopUpgrade linux-image-5.15.0-1070-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-gkeUpgrade linux-image-generic-64kUpgrade linux-image-oem-20.04dUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-5.4.0-1042-iotUpgrade linux-image-5.4.0-1090-bluefieldUpgrade linux-image-nvidiaUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-118-lowlatencyUpgrade linux-image-oem-20.04Upgrade linux-image-oemUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-oem-24.04Upgrade linux-image-5.4.0-192-lowlatencyUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1060-raspiUpgrade linux-image-gcpUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.4.0-1134-gcpUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-virtualUpgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1062-nvidia-lowlatencyUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-5.4.0-192-generic-lpaeUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-intelUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1013-awsUpgrade linux-image-genericUpgrade linux-image-oracle-64kUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-azureUpgrade linux-image-5.15.0-1060-ibmUpgrade linux-image-5.4.0-1077-ibmUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-5.15.0-1064-gkeUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-oem-24.04aUpgrade linux-image-5.4.0-1097-gkeopUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1010-oemUpgrade linux-image-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.4.0-1118-kvmUpgrade linux-image-gkeop-5.4Upgrade linux-image-ibmUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-raspiUpgrade linux-image-raspi2Upgrade linux-image-generic-64k-hwe-20.04 | Aug 9, 2024 | May 30, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | May 30, 2024 |
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