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