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