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.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-64k-develUpgrade kernel-debug-modules-coreUpgrade kernel-64kUpgrade kernel-debug-coreUpgrade kernel-rt-debug-coreUpgrade rtlaUpgrade kernel-rt-64k-coreUpgrade kernel-zfcpdumpUpgrade kernel-64k-develUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-modulesUpgrade kernel-debug-develUpgrade kernel-64k-modules-coreUpgrade kernel-debugUpgrade kernel-coreUpgrade kernel-modulesUpgrade kernel-cross-headersUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-debugUpgrade kernel-64k-debug-develUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-64k-debugUpgrade kernel-tools-libsUpgrade kernel-debug-uki-virtUpgrade kernelUpgrade kernel-rt-modules-extraUpgrade kernel-develUpgrade kernel-64k-debug-coreUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-64k-modules-coreUpgrade kernel-rt-64k-debug-develUpgrade python3-perfUpgrade kernel-rt-coreUpgrade kernel-rt-develUpgrade kernel-64k-modules-extraUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-modules-coreUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-64k-modules-extraUpgrade kernel-64k-debug-modules-extraUpgrade kernel-abi-stablelistsUpgrade rvUpgrade kernel-docUpgrade kernel-zfcpdump-modulesUpgrade kernel-rtUpgrade kernel-rt-64kUpgrade kernel-rt-64k-debug-coreUpgrade kernel-tools-libs-develUpgrade kernel-devel-matchedUpgrade perfUpgrade kernel-uki-virt-addonsUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-debug-develUpgrade kernel-uki-virtUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-rt-64k-modulesUpgrade kernel-rt-modulesUpgrade kernel-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-toolsUpgrade kernel-headersUpgrade kernel-zfcpdump-develUpgrade kernel-zfcpdump-coreUpgrade libperfUpgrade kernel-64k-debugUpgrade kernel-64k-core | Nov 20, 2025 | Nov 11, 2025 |
| Amazon Linux Ami 2 | — | Upgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.10.233-223.887Upgrade python-perf-debuginfoUpgrade kernel-headersUpgrade kernel-develUpgrade kernel-tools-develUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade python-perfUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-livepatch-5.15.176-118.170Upgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel | Mar 14, 2025 | Jan 11, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-develUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extra-commonUpgrade python3-perfUpgrade kernel-tools-develUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.124-134.200Upgrade perfUpgrade kernel-modules-extraUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade bpftoolUpgrade bpftool-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-libbpf-staticUpgrade kernel-debuginfoUpgrade kernel-tools | 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 kernel-toolsUpgrade bpftoolUpgrade kernelUpgrade kernel-abi-stablelists | Jun 13, 2025 | Jan 11, 2025 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade python3-perfUpgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel-tools | Jun 11, 2025 | Jan 11, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade kernelUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libs | Jun 11, 2025 | Jan 11, 2025 |
| Oracle_linux | — | Upgrade kernel | Nov 28, 2025 | Jan 11, 2025 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Jul 9, 2025 | Jan 11, 2025 |
| Rocky_linux | — | Upgrade kernel-rt-modulesUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-develUpgrade kernel-debug-develUpgrade kernel-modules-extraUpgrade kernel-zfcpdumpUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-modulesUpgrade kernel-uki-virtUpgrade kernel-rt-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade libperfUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debug-develUpgrade python3-perfUpgrade kernel-rt-debug-modules-coreUpgrade kernel-devel-matchedUpgrade rtlaUpgrade kernel-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debugUpgrade kernel-modules-coreUpgrade perfUpgrade perf-debuginfoUpgrade kernel-zfcpdump-modulesUpgrade kernel-debuginfoUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-debuginfoUpgrade kernel-rt-develUpgrade kernel-debug-uki-virtUpgrade kernel-tools-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-debug-modules-extraUpgrade libperf-debuginfoUpgrade kernel-debug-modulesUpgrade kernel-rt-debugUpgrade kernel-develUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-modules-coreUpgrade kernelUpgrade kernel-rt-debug-coreUpgrade kernel-debuginfo-common-x86_64Upgrade python3-perf-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade rvUpgrade kernel-rt-debug-debuginfoUpgrade kernel-debuginfo-common-s390xUpgrade kernel-rtUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel-tools-libs-develUpgrade kernel-uki-virt-addonsUpgrade kernel-zfcpdump-debuginfo | Feb 5, 2026 | Nov 21, 2025 |
| Ubuntu | — | Upgrade linux-image-5.4.0-1048-iotUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-nvidiaUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-oracle-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-58-generic-64kUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.4.0-1145-gcpUpgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.4.0-1129-raspiUpgrade linux-image-ibmUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-oem-22.04aUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-raspi2Upgrade linux-image-azureUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1026-nvidia-lowlatencyUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-generic-lpaeUpgrade linux-image-aws-lts-20.04Upgrade linux-image-nvidiaUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.8.0-1014-azure-nvidiaUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-awsUpgrade linux-image-5.4.0-211-genericUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-5.4.0-211-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-5.4.0-211-generic-lpaeUpgrade linux-image-5.4.0-1129-kvmUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-6.11.0-1012-azureUpgrade linux-image-6.8.0-1026-oemUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-5.4.0-1147-azure-fipsUpgrade linux-image-6.8.1-1020-realtimeUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-gcpUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-oem-20.04bUpgrade linux-image-6.8.0-58-genericUpgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-gkeop-6.8Upgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-oem-20.04dUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1028-gcpUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1024-oracle-64kUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-generic-64kUpgrade linux-image-5.4.0-1101-bluefieldUpgrade linux-image-6.8.0-58-lowlatencyUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-azure-lts-20.04Upgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.4.0-1140-oracleUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-5.4.0-1060-xilinx-zynqmpUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-nvidia-64kUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-azure-fdeUpgrade linux-image-oem-22.04bUpgrade linux-image-gcp-fipsUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-realtimeUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.4.0-1090-ibmUpgrade linux-image-intelUpgrade linux-image-genericUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1088-ibmUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-6.8.0-1024-oracleUpgrade linux-image-oem-20.04Upgrade linux-image-oracleUpgrade linux-image-6.8.0-1023-gkeUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.4.0-1145-gcp-fipsUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-oem-24.04bUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-tegraUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.4.0-1147-azureUpgrade linux-image-6.8.0-1026-nvidia-lowlatency-64kUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-5.4.0-1142-awsUpgrade linux-image-bluefieldUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-58-lowlatency-64kUpgrade linux-image-azure-lts-22.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-gkeopUpgrade linux-image-6.8.0-1027-azure-fdeUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-6.8.0-1027-azureUpgrade linux-image-virtualUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-6.8.0-1026-nvidiaUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gkeop-5.15Upgrade linux-image-5.4.0-1142-aws-fipsUpgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-fipsUpgrade linux-image-oemUpgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1027-awsUpgrade linux-image-6.8.0-1010-gkeopUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1080-awsUpgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1028-gcp-64kUpgrade linux-image-6.8.0-1026-nvidia-64kUpgrade linux-image-6.8.0-1024-ibmUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-5.4.0-1116-fipsUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-gkeUpgrade linux-image-oem-24.04 | 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 |
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