In the Linux kernel, the following vulnerability has been resolved:
udp: Set SOCK_RCU_FREE earlier in udp_lib_get_port().
syzkaller triggered the warning [0] in udp_v4_early_demux().
In udp_v[46]_early_demux() and sk_lookup(), we do not touch the refcount of the looked-up sk and use sock_pfree() as skb->destructor, so we check SOCK_RCU_FREE to ensure that the sk is safe to access during the RCU grace period.
Currently, SOCK_RCU_FREE is flagged for a bound socket after being put into the hash table. Moreover, the SOCK_RCU_FREE check is done too early in udp_v[46]_early_demux() and sk_lookup(), so there could be a small race window:
CPU1 CPU2 ---- ---- udp_v4_early_demux() udp_lib_get_port() | |- hlist_add_head_rcu() |- sk = __udp4_lib_demux_lookup() | |- DEBUG_NET_WARN_ON_ONCE(sk_is_refcounted(sk)); `- sock_set_flag(sk, SOCK_RCU_FREE)
We had the same bug in TCP and fixed it in commit 871019b22d1b ("net: set SOCK_RCU_FREE before inserting socket into hashtable").
Let's apply the same fix for UDP.
[0]: WARNING: CPU: 0 PID: 11198 at net/ipv4/udp.c:2599 udp_v4_early_demux+0x481/0xb70 net/ipv4/udp.c:2599 Modules linked in: CPU: 0 PID: 11198 Comm: syz-executor.1 Not tainted 6.9.0-g93bda33046e7 #13 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014 RIP: 0010:udp_v4_early_demux+0x481/0xb70 net/ipv4/udp.c:2599 Code: c5 7a 15 fe bb 01 00 00 00 44 89 e9 31 ff d3 e3 81 e3 bf ef ff ff 89 de e8 2c 74 15 fe 85 db 0f 85 02 06 00 00 e8 9f 7a 15 fe <0f> 0b e8 98 7a 15 fe 49 8d 7e 60 e8 4f 39 2f fe 49 c7 46 60 20 52 RSP: 0018:ffffc9000ce3fa58 EFLAGS: 00010293 RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff8318c92c RDX: ffff888036ccde00 RSI: ffffffff8318c2f1 RDI: 0000000000000001 RBP: ffff88805a2dd6e0 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0001ffffffffffff R12: ffff88805a2dd680 R13: 0000000000000007 R14: ffff88800923f900 R15: ffff88805456004e FS: 00007fc449127640(0000) GS:ffff88807dc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fc449126e38 CR3: 000000003de4b002 CR4: 0000000000770ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600 PKRU: 55555554 Call Trace: <TASK> ip_rcv_finish_core.constprop.0+0xbdd/0xd20 net/ipv4/ip_input.c:349 ip_rcv_finish+0xda/0x150 net/ipv4/ip_input.c:447 NF_HOOK include/linux/netfilter.h:314 [inline] NF_HOOK include/linux/netfilter.h:308 [inline] ip_rcv+0x16c/0x180 net/ipv4/ip_input.c:569 __netif_receive_skb_one_core+0xb3/0xe0 net/core/dev.c:5624 __netif_receive_skb+0x21/0xd0 net/core/dev.c:5738 netif_receive_skb_internal net/core/dev.c:5824 [inline] netif_receive_skb+0x271/0x300 net/core/dev.c:5884 tun_rx_batched drivers/net/tun.c:1549 [inline] tun_get_user+0x24db/0x2c50 drivers/net/tun.c:2002 tun_chr_write_iter+0x107/0x1a0 drivers/net/tun.c:2048 new_sync_write fs/read_write.c:497 [inline] vfs_write+0x76f/0x8d0 fs/read_write.c:590 ksys_write+0xbf/0x190 fs/read_write.c:643 __do_sys_write fs/read_write.c:655 [inline] __se_sys_write fs/read_write.c:652 [inline] __x64_sys_write+0x41/0x50 fs/read_write.c:652 x64_sys_call+0xe66/0x1990 arch/x86/include/generated/asm/syscalls_64.h:2 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x4b/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7fc44a68bc1f Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 e9 cf f5 ff 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 3c d0 f5 ff 48 RSP: 002b:00007fc449126c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00000000004bc050 RCX: 00007fc44a68bc1f R ---truncated---
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-debugUpgrade kernelUpgrade kernel-64k-modules-coreUpgrade kernel-modules-coreUpgrade kernel-tools-libs-develUpgrade kernel-64kUpgrade rtlaUpgrade kernel-debug-modules-coreUpgrade kernel-rt-coreUpgrade kernel-64k-debug-coreUpgrade kernel-rt-kvmUpgrade kernel-debug-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-tools-libsUpgrade kernel-headersUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-develUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-debug-develUpgrade kernel-rt-debug-coreUpgrade kernel-64k-coreUpgrade bpftoolUpgrade kernel-debug-devel-matchedUpgrade kernel-64k-modulesUpgrade kernel-cross-headersUpgrade kernel-abi-stablelistsUpgrade kernel-64k-debugUpgrade kernel-uki-virtUpgrade kernel-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-coreUpgrade kernel-rt-modules-coreUpgrade kernel-rtUpgrade kernel-64k-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdumpUpgrade kernel-docUpgrade kernel-64k-develUpgrade kernel-64k-debug-modulesUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-modulesUpgrade kernel-toolsUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-modulesUpgrade kernel-debug-uki-virtUpgrade rvUpgrade kernel-rt-debug-modules-coreUpgrade libperfUpgrade perfUpgrade kernel-devel-matchedUpgrade python3-perfUpgrade kernel-rt-debug-kvmUpgrade kernel-64k-devel-matchedUpgrade kernel-64k-debug-develUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-debug-modules-coreUpgrade kernel-develUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-modules-extraUpgrade kernel-modules-extra | Sep 26, 2024 | Jul 29, 2024 |
| Amazon Linux Ami 2 | — | Upgrade bpftoolUpgrade kernel-tools-develUpgrade perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-livepatch-5.15.164-108.161Upgrade kernel-tools-debuginfoUpgrade kernel-livepatch-5.10.223-211.872Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade kernel-debuginfoUpgrade python-perfUpgrade perf-debuginfoUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64 | Aug 28, 2024 | Jul 29, 2024 |
| Amazon_linux_2023 | — | Upgrade python3-perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade kernel-tools-develUpgrade kernel-develUpgrade bpftoolUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade python3-perfUpgrade kernel-libbpfUpgrade kernel-libbpf-develUpgrade kernel-livepatch-6.1.102-108.177Upgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-modules-extra | Feb 17, 2025 | Jul 29, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Aug 14, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-tools-libsUpgrade kernelUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-abi-stablelists | Nov 11, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade kernel-tools | Oct 9, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Nov 5, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-tools | Nov 11, 2024 | Jul 29, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Oct 16, 2024 | Jul 29, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Sep 25, 2024 | Jul 29, 2024 |
| Rocky_linux | — | Upgrade kernel-rtUpgrade kernel-rt-debuginfoUpgrade kernel-debug-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-cross-headersUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-modules-extraUpgrade perfUpgrade kernel-toolsUpgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-kvmUpgrade bpftoolUpgrade kernel-tools-debuginfoUpgrade kernel-debug-modulesUpgrade kernel-debug-debuginfoUpgrade kernel-coreUpgrade kernel-modulesUpgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debug-coreUpgrade kernel-debugUpgrade python3-perf-debuginfoUpgrade kernel-rt-debugUpgrade kernel-rt-coreUpgrade kernel-modules-extraUpgrade kernel-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-develUpgrade kernel-develUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-modulesUpgrade kernel-rt-debug-core | Oct 2, 2024 | Jul 29, 2024 |
| Suse | — | Upgrade kernel-kvmsmall-livepatch-develUpgrade kernel-64kb-livepatch-develUpgrade kernel-docsUpgrade kernel-debug-develUpgrade kselftests-kmp-rtUpgrade kselftests-kmp-azureUpgrade dtb-freescaleUpgrade kernel-default-develUpgrade dlm-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade dtb-marvellUpgrade kernel-64kbUpgrade kernel-64kb-develUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade ocfs2-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade dtb-allwinnerUpgrade kernel-zfcpdumpUpgrade dtb-socionextUpgrade gfs2-kmp-defaultUpgrade kernel-azure-extraUpgrade kernel-source-azureUpgrade kernel-symsUpgrade cluster-md-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-rt_debugUpgrade dtb-amazonUpgrade dtb-apmUpgrade kernel-default-livepatchUpgrade kernel-64kb-extraUpgrade kernel-kvmsmall-develUpgrade dtb-lgUpgrade kernel-kvmsmall-vdsoUpgrade dlm-kmp-azureUpgrade dtb-amdUpgrade dtb-appleUpgrade kernel-rt-livepatch-develUpgrade kernel-default-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-64kb-optionalUpgrade reiserfs-kmp-defaultUpgrade kernel-rt_debug-develUpgrade reiserfs-kmp-rtUpgrade cluster-md-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-default-baseUpgrade kernel-source-rtUpgrade kernel-debug-livepatch-develUpgrade kernel-rt-optionalUpgrade dtb-renesasUpgrade kernel-azure-optionalUpgrade kernel-azure-vdsoUpgrade kernel-debugUpgrade dtb-broadcomUpgrade reiserfs-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-obs-qaUpgrade kernel-azure-develUpgrade kselftests-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade kernel-develUpgrade kernel-source-vanillaUpgrade kernel-devel-rtUpgrade kselftests-kmp-64kbUpgrade kernel-sourceUpgrade kernel-rt-vdsoUpgrade kernel-default-vdsoUpgrade gfs2-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-rt-livepatchUpgrade kernel-rt-develUpgrade dtb-sprdUpgrade dtb-exynosUpgrade dtb-amlogicUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade kernel-obs-buildUpgrade dtb-alteraUpgrade dtb-armUpgrade dtb-mediatekUpgrade ocfs2-kmp-defaultUpgrade kernel-default-optionalUpgrade kernel-azureUpgrade dtb-nvidiaUpgrade dtb-qcomUpgrade kernel-macrosUpgrade kernel-kvmsmallUpgrade dtb-xilinxUpgrade kernel-rtUpgrade kernel-devel-azureUpgrade dlm-kmp-rtUpgrade kernel-rt-extraUpgrade kernel-default-base-rebuildUpgrade kernel-debug-vdsoUpgrade dtb-rockchipUpgrade dtb-caviumUpgrade gfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade kernel-defaultUpgrade kernel-default-extraUpgrade kernel-syms-azure | Aug 14, 2024 | Jul 29, 2024 |
| Ubuntu | — | Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-intelUpgrade linux-image-oem-22.04Upgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-1062-ibmUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-aws-lts-22.04Upgrade linux-image-gkeUpgrade linux-image-nvidia-64kUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1131-oracleUpgrade linux-image-5.15.0-1072-azure-fdeUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.4.0-1092-bluefieldUpgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-121-generic-lpaeUpgrade linux-image-5.4.0-1137-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-5.4.0-1043-iotUpgrade linux-image-raspi2Upgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-ibmUpgrade linux-image-oem-22.04aUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-oem-20.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.4.0-1099-gkeopUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1064-intel-iotgUpgrade linux-image-oem-20.04cUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-oemUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-5.15.0-121-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-intel-iotgUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-195-genericUpgrade linux-image-5.15.0-1066-kvmUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.4.0-1079-ibmUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-azure-lts-22.04Upgrade linux-image-genericUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-lowlatency-64kUpgrade linux-image-gkeop-5.4Upgrade linux-image-generic-64kUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.15.0-121-generic-64kUpgrade linux-image-oem-24.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-gcpUpgrade linux-image-raspiUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-5.15.0-1072-azureUpgrade linux-image-azureUpgrade linux-image-oracle-64kUpgrade linux-image-5.4.0-195-generic-lpaeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-121-genericUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1052-gkeopUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-1064-nvidiaUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-5.4.0-195-lowlatencyUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1066-gkeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1132-awsUpgrade linux-image-5.4.0-1136-gcpUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1017-azureUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-6.8.0-48-genericUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.4.0-1051-xilinx-zynqmpUpgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1069-awsUpgrade linux-image-5.15.0-1064-nvidia-lowlatencyUpgrade linux-image-5.15.0-1067-oracleUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-bluefieldUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-5.15.0-1068-gcpUpgrade linux-image-virtualUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-awsUpgrade linux-image-5.4.0-1116-raspiUpgrade linux-image-raspi2-hwe-18.04Upgrade linux-image-6.8.0-1016-oemUpgrade linux-image-5.15.0-121-lowlatencyUpgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1062-raspiUpgrade linux-image-6.8.0-1016-azureUpgrade linux-image-5.4.0-1120-kvmUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-azure-lts-20.04 | Sep 13, 2024 | Jul 29, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Jul 29, 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