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-headersUpgrade kernel-debug-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-64kUpgrade kernel-64k-coreUpgrade kernel-cross-headersUpgrade kernel-debug-modulesUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-modules-coreUpgrade kernel-tools-libsUpgrade kernel-rt-debugUpgrade kernel-rt-debug-coreUpgrade kernel-64k-modules-coreUpgrade kernelUpgrade kernel-64k-debug-coreUpgrade kernel-abi-stablelistsUpgrade rtlaUpgrade kernel-rt-coreUpgrade kernel-rt-develUpgrade kernel-tools-libs-develUpgrade bpftoolUpgrade kernel-rt-kvmUpgrade kernel-64k-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-develUpgrade kernel-rt-debug-modulesUpgrade kernel-64k-modules-extraUpgrade kernel-rt-debug-kvmUpgrade rvUpgrade kernel-rt-debug-modules-coreUpgrade kernel-64k-debug-develUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debug-modules-extraUpgrade kernel-modules-extraUpgrade kernel-modulesUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-modulesUpgrade python3-perfUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-debug-modules-extraUpgrade kernel-64k-debugUpgrade kernel-devel-matchedUpgrade kernel-toolsUpgrade kernel-64k-develUpgrade kernel-zfcpdump-develUpgrade kernel-rtUpgrade kernel-zfcpdump-coreUpgrade perfUpgrade kernel-coreUpgrade kernel-rt-modules-coreUpgrade kernel-debugUpgrade kernel-zfcpdump-devel-matchedUpgrade libperfUpgrade kernel-debug-coreUpgrade kernel-docUpgrade kernel-rt-debug-develUpgrade kernel-uki-virtUpgrade kernel-zfcpdumpUpgrade kernel-64k-debug-modules-core | Sep 26, 2024 | Jul 29, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-5.10.223-211.872Upgrade python-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade python-perfUpgrade kernel-livepatch-5.15.164-108.161Upgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernelUpgrade kernel-tools-develUpgrade perfUpgrade kernel-tools | Aug 28, 2024 | Jul 29, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-develUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extra-commonUpgrade python3-perf-debuginfoUpgrade kernel-toolsUpgrade bpftoolUpgrade perfUpgrade kernel-develUpgrade kernel-libbpf-develUpgrade kernel-modules-extraUpgrade kernel-headersUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-libbpfUpgrade python3-perfUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.102-108.177Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-libbpf-static | Feb 17, 2025 | Jul 29, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Aug 14, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-abi-stablelists | Nov 11, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perfUpgrade kernel-tools-libsUpgrade bpftool | Oct 9, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-tools | Nov 5, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade python3-perfUpgrade kernel | Nov 11, 2024 | Jul 29, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Oct 16, 2024 | Jul 29, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Sep 25, 2024 | Jul 29, 2024 |
| Rocky_linux | — | Upgrade kernel-rt-debug-modulesUpgrade kernel-rt-coreUpgrade kernel-modules-extraUpgrade kernel-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernelUpgrade kernel-rt-develUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-modulesUpgrade kernel-debug-debuginfoUpgrade kernel-coreUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade python3-perfUpgrade kernel-rt-debug-coreUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-coreUpgrade kernel-debuginfoUpgrade kernel-debugUpgrade kernel-rt-kvmUpgrade python3-perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-debug-modulesUpgrade kernel-rt-debugUpgrade kernel-cross-headersUpgrade kernel-toolsUpgrade kernel-rtUpgrade kernel-tools-libs-develUpgrade kernel-rt-debuginfoUpgrade kernel-headersUpgrade perf-debuginfoUpgrade perfUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debug-modules-extra | Oct 2, 2024 | Jul 29, 2024 |
| Suse | — | Upgrade gfs2-kmp-defaultUpgrade kernel-azure-extraUpgrade kselftests-kmp-rtUpgrade dtb-freescaleUpgrade dtb-amazonUpgrade kernel-docsUpgrade kselftests-kmp-azureUpgrade dtb-socionextUpgrade kernel-source-azureUpgrade gfs2-kmp-64kbUpgrade kernel-64kbUpgrade dtb-marvellUpgrade dtb-broadcomUpgrade dlm-kmp-defaultUpgrade kernel-syms-rtUpgrade kernel-obs-qaUpgrade kernel-64kb-livepatch-develUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-64kb-develUpgrade kernel-default-livepatchUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-symsUpgrade kernel-zfcpdumpUpgrade kernel-source-rtUpgrade cluster-md-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-default-develUpgrade kernel-azure-vdsoUpgrade kernel-azure-optionalUpgrade kernel-debug-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-default-livepatch-develUpgrade kernel-default-baseUpgrade reiserfs-kmp-64kbUpgrade reiserfs-kmp-rtUpgrade dtb-hisiliconUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmall-develUpgrade kernel-64kb-optionalUpgrade dtb-lgUpgrade kernel-64kb-extraUpgrade kernel-docs-htmlUpgrade kernel-debugUpgrade dlm-kmp-azureUpgrade dtb-amdUpgrade kernel-rt_debugUpgrade dtb-apmUpgrade cluster-md-kmp-defaultUpgrade dtb-appleUpgrade kernel-rt_debug-develUpgrade kernel-debug-develUpgrade dtb-allwinnerUpgrade dtb-renesasUpgrade ocfs2-kmp-64kbUpgrade kernel-kvmsmallUpgrade kernel-default-vdsoUpgrade gfs2-kmp-azureUpgrade kernel-rt-develUpgrade kernel-obs-buildUpgrade dtb-sprdUpgrade dtb-amlogicUpgrade dtb-alteraUpgrade cluster-md-kmp-rtUpgrade kernel-macrosUpgrade kernel-syms-azureUpgrade dtb-exynosUpgrade dtb-mediatekUpgrade dtb-nvidiaUpgrade kernel-default-base-rebuildUpgrade dtb-caviumUpgrade kernel-debug-vdsoUpgrade dtb-rockchipUpgrade kernel-rt-vdsoUpgrade dlm-kmp-rtUpgrade kernel-rt-extraUpgrade kernel-rtUpgrade kernel-devel-azureUpgrade cluster-md-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-sourceUpgrade kernel-develUpgrade kselftests-kmp-64kbUpgrade kernel-default-optionalUpgrade ocfs2-kmp-defaultUpgrade dlm-kmp-64kbUpgrade kernel-defaultUpgrade kernel-azureUpgrade dtb-armUpgrade gfs2-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-default-extraUpgrade kernel-azure-livepatch-develUpgrade dtb-xilinxUpgrade kernel-source-vanillaUpgrade dtb-qcomUpgrade kernel-azure-develUpgrade reiserfs-kmp-azureUpgrade kernel-rt-livepatch | Aug 14, 2024 | Jul 29, 2024 |
| Ubuntu | — | Upgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-24.04Upgrade linux-image-5.15.0-121-generic-64kUpgrade linux-image-generic-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-aws-lts-20.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-gkeopUpgrade linux-image-azureUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gkeop-5.4Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.4.0-1079-ibmUpgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-oem-20.04bUpgrade linux-image-oem-20.04Upgrade linux-image-oemUpgrade linux-image-5.15.0-1072-azureUpgrade linux-image-gcpUpgrade linux-image-oem-osp1Upgrade linux-image-oem-24.04aUpgrade linux-image-5.4.0-1137-azureUpgrade linux-image-intelUpgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1072-azure-fdeUpgrade linux-image-5.4.0-1092-bluefieldUpgrade linux-image-oem-22.04bUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-1062-ibmUpgrade linux-image-aws-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-gke-5.15Upgrade linux-image-raspi2Upgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-5.15.0-1064-intel-iotgUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-121-lowlatency-64kUpgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1066-kvmUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-oem-20.04dUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-121-generic-lpaeUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-5.4.0-1099-gkeopUpgrade linux-image-5.4.0-1131-oracleUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-oem-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-ibm-classicUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.4.0-1043-iotUpgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-5.4.0-195-genericUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1136-gcpUpgrade linux-image-5.4.0-195-lowlatencyUpgrade linux-image-5.4.0-1132-awsUpgrade linux-image-5.15.0-1064-nvidiaUpgrade linux-image-6.8.0-1016-oemUpgrade linux-image-raspi2-hwe-18.04Upgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-5.4.0-1051-xilinx-zynqmpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1068-gcpUpgrade linux-image-5.4.0-1116-raspiUpgrade linux-image-awsUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-6.8.0-48-genericUpgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1069-awsUpgrade linux-image-virtualUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.15.0-1066-gkeUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-azure-fdeUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-1052-gkeopUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-6.8.0-1016-azureUpgrade linux-image-5.15.0-1067-oracleUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.15.0-1062-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-5.4.0-1120-kvmUpgrade linux-image-azure-lts-20.04Upgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-5.15.0-1064-nvidia-lowlatencyUpgrade linux-image-5.15.0-121-lowlatencyUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-bluefieldUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-121-genericUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.4.0-195-generic-lpaeUpgrade linux-image-generic-64k-hwe-24.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