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