In the Linux kernel, the following vulnerability has been resolved:
ipvs: fix UB due to uninitialized stack access in ip_vs_protocol_init()
Under certain kernel configurations when building with Clang/LLVM, the compiler does not generate a return or jump as the terminator instruction for ip_vs_protocol_init(), triggering the following objtool warning during build time:
vmlinux.o: warning: objtool: ip_vs_protocol_init() falls through to next function __initstub__kmod_ip_vs_rr__935_123_ip_vs_rr_init6()
At runtime, this either causes an oops when trying to load the ipvs module or a boot-time panic if ipvs is built-in. This same issue has been reported by the Intel kernel test robot previously.
Digging deeper into both LLVM and the kernel code reveals this to be a undefined behavior problem. ip_vs_protocol_init() uses a on-stack buffer of 64 chars to store the registered protocol names and leaves it uninitialized after definition. The function calls strnlen() when concatenating protocol names into the buffer. With CONFIG_FORTIFY_SOURCE strnlen() performs an extra step to check whether the last byte of the input char buffer is a null character (commit 3009f891bb9f ("fortify: Allow strlen() and strnlen() to pass compile-time known lengths")). This, together with possibly other configurations, cause the following IR to be generated:
define hidden i32 @ip_vs_protocol_init() local_unnamed_addr #5 section ".init.text" align 16 !kcfi_type !29 { %1 = alloca [64 x i8], align 16 ...
14: ; preds = %11 %15 = getelementptr inbounds i8, ptr %1, i64 63 %16 = load i8, ptr %15, align 1 %17 = tail call i1 @llvm.is.constant.i8(i8 %16) %18 = icmp eq i8 %16, 0 %19 = select i1 %17, i1 %18, i1 false br i1 %19, label %20, label %23
20: ; preds = %14 %21 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23 ...
23: ; preds = %14, %11, %20 %24 = call i64 @strnlen(ptr noundef nonnull dereferenceable(1) %1, i64 noundef 64) #24 ... }
The above code calculates the address of the last char in the buffer (value %15) and then loads from it (value %16). Because the buffer is never initialized, the LLVM GVN pass marks value %16 as undefined:
%13 = getelementptr inbounds i8, ptr %1, i64 63 br i1 undef, label %14, label %17
This gives later passes (SCCP, in particular) more DCE opportunities by propagating the undef value further, and eventually removes everything after the load on the uninitialized stack location:
define hidden i32 @ip_vs_protocol_init() local_unnamed_addr #0 section ".init.text" align 16 !kcfi_type !11 { %1 = alloca [64 x i8], align 16 ...
12: ; preds = %11 %13 = getelementptr inbounds i8, ptr %1, i64 63 unreachable }
In this way, the generated native code will just fall through to the next function, as LLVM does not generate any code for the unreachable IR instruction and leaves the function without a terminator.
Zero the on-stack buffer to avoid this possible UB.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-64k-modulesUpgrade kernel-64k-develUpgrade kernel-rt-64k-develUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-64k-coreUpgrade kernel-rt-64k-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-develUpgrade kernel-debug-modules-coreUpgrade kernel-64kUpgrade kernel-debugUpgrade kernel-debug-uki-virtUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libsUpgrade kernel-rt-64k-debug-develUpgrade kernel-debug-coreUpgrade kernelUpgrade kernel-develUpgrade kernel-modulesUpgrade kernel-rt-64k-modules-coreUpgrade rtlaUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modules-extraUpgrade python3-perfUpgrade kernel-rt-debugUpgrade kernel-cross-headersUpgrade kernel-64k-modules-coreUpgrade kernel-64k-modules-extraUpgrade kernel-rt-coreUpgrade kernel-64k-debug-coreUpgrade kernel-coreUpgrade kernel-64k-debug-develUpgrade kernel-zfcpdumpUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-rt-modulesUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-toolsUpgrade perfUpgrade kernel-rt-64k-debug-coreUpgrade kernel-rt-64k-modules-extraUpgrade kernel-docUpgrade kernel-rtUpgrade kernel-uki-virtUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-modules-coreUpgrade kernel-64k-debugUpgrade kernel-abi-stablelistsUpgrade libperfUpgrade kernel-zfcpdump-modulesUpgrade kernel-headersUpgrade kernel-rt-64k-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-uki-virt-addonsUpgrade kernel-zfcpdump-coreUpgrade kernel-tools-libs-develUpgrade kernel-64k-coreUpgrade kernel-rt-debug-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernel-modules-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-64kUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-debug-develUpgrade kernel-rt-64k-debug-modulesUpgrade rv | Nov 20, 2025 | Nov 11, 2025 |
| Amazon Linux Ami 2 | — | Upgrade kernel-tools-debuginfoUpgrade kernel-livepatch-5.15.176-118.170Upgrade bpftoolUpgrade python-perfUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade kernelUpgrade kernel-tools-develUpgrade kernel-livepatch-5.10.233-223.887Upgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-headersUpgrade python-perf-debuginfoUpgrade perfUpgrade perf-debuginfoUpgrade kernel-devel | Mar 14, 2025 | Jan 11, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-develUpgrade kernel-debuginfoUpgrade kernel-toolsUpgrade kernelUpgrade python3-perf-debuginfoUpgrade kernel-libbpfUpgrade kernel-modules-extraUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-libbpf-staticUpgrade kernel-develUpgrade kernel-modules-extra-commonUpgrade kernel-tools-develUpgrade perfUpgrade kernel-livepatch-6.1.124-134.200Upgrade python3-perfUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade perf-debuginfo | Mar 27, 2025 | Jan 11, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Jan 13, 2025 | Jan 11, 2025 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade python3-perfUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernel | Jun 13, 2025 | Jan 11, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-toolsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel | Jun 11, 2025 | Jan 11, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernelUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Jun 11, 2025 | Jan 11, 2025 |
| Oracle_linux | — | Upgrade kernel | Nov 28, 2025 | Jan 11, 2025 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Jul 9, 2025 | Jan 11, 2025 |
| Rocky_linux | — | Upgrade kernel-debuginfoUpgrade perfUpgrade kernel-rt-debuginfoUpgrade libperfUpgrade kernel-uki-virtUpgrade kernel-zfcpdumpUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-coreUpgrade kernel-modules-coreUpgrade kernel-debugUpgrade kernel-rt-debug-develUpgrade rtlaUpgrade kernel-rt-debug-modules-coreUpgrade python3-perfUpgrade kernel-rt-modulesUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modulesUpgrade kernel-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-modules-coreUpgrade perf-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-debug-modulesUpgrade kernel-debug-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-rt-debug-coreUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade kernel-rt-develUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libsUpgrade kernel-develUpgrade kernel-debug-uki-virtUpgrade kernel-rt-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debug-modules-coreUpgrade kernelUpgrade kernel-rtUpgrade kernel-debuginfo-common-s390xUpgrade rvUpgrade kernel-tools-libs-develUpgrade kernel-toolsUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-uki-virt-addonsUpgrade libperf-debuginfoUpgrade kernel-zfcpdump-core | Feb 5, 2026 | Nov 21, 2025 |
| Ubuntu | — | Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-genericUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-58-lowlatency-64kUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-oracleUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-135-genericUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1023-gkeUpgrade linux-image-intelUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1026-nvidiaUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-gkeopUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-oem-24.04bUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-tegraUpgrade linux-image-aws-lts-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1027-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-gcp-64kUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-6.8.0-1028-gcp-64kUpgrade linux-image-oem-22.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.4.0-1142-awsUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-bluefieldUpgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-6.8.0-1024-ibmUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-aws-fipsUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-realtimeUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1026-nvidia-64kUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1027-awsUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1010-gkeopUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1024-oracleUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-azure-cvmUpgrade linux-image-6.8.0-1027-azureUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-6.8.0-1026-nvidia-lowlatency-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-oemUpgrade linux-image-virtualUpgrade linux-image-intel-iotgUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.4.0-1147-azureUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-6.8.0-1026-oemUpgrade linux-image-ibm-classicUpgrade linux-image-raspi-nolpaeUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1028-gcpUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-aws-lts-20.04Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-58-genericUpgrade linux-image-nvidiaUpgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-raspi2Upgrade linux-image-5.4.0-1048-iotUpgrade linux-image-6.8.0-58-lowlatencyUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-awsUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-22.04cUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.8.0-1024-oracle-64kUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-azure-fdeUpgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-135-fipsUpgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-oem-20.04bUpgrade linux-image-generic-lpaeUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-kvmUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.8.0-58-generic-64kUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.1-1020-realtimeUpgrade linux-image-gcpUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-azureUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibmUpgrade linux-image-raspi-realtimeUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-6.8.0-1026-nvidia-lowlatency | Mar 28, 2025 | Jan 11, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 29, 2025 | Jan 11, 2025 |
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