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