In the Linux kernel, the following vulnerability has been resolved:
MIPS: Work around LLVM bug when gp is used as global register variable
On MIPS, __current_thread_info is defined as global register variable locating in $gp, and is simply assigned with new address during kernel relocation.
This however is broken with LLVM, which always restores $gp if it finds $gp is clobbered in any form, including when intentionally through a global register variable. This is against GCC's documentation[1], which requires a callee-saved register used as global register variable not to be restored if it's clobbered.
As a result, $gp will continue to point to the unrelocated kernel after the epilog of relocate_kernel(), leading to an early crash in init_idle,
[ 0.000000] CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == ffffffff81afada8, ra == ffffffff81afad90 [ 0.000000] Oops[#1]: [ 0.000000] CPU: 0 UID: 0 PID: 0 Comm: swapper Tainted: G W 6.19.0-rc5-00262-gd3eeb99bbc99-dirty #188 VOLUNTARY [ 0.000000] Tainted: [W]=WARN [ 0.000000] Hardware name: loongson,loongson64v-4core-virtio [ 0.000000] $ 0 : 0000000000000000 0000000000000000 0000000000000001 0000000000000000 [ 0.000000] $ 4 : ffffffff80b80ec0 ffffffff80b53d48 0000000000000000 00000000000f4240 [ 0.000000] $ 8 : 0000000000000100 ffffffff81d82f80 ffffffff81d82f80 0000000000000001 [ 0.000000] $12 : 0000000000000000 ffffffff81776f58 00000000000005da 0000000000000002 [ 0.000000] $16 : ffffffff80b80e40 0000000000000000 ffffffff80b81614 9800000005dfbe80 [ 0.000000] $20 : 00000000540000e0 ffffffff81980000 0000000000000000 ffffffff80f81c80 [ 0.000000] $24 : 0000000000000a26 ffffffff8114fb90 [ 0.000000] $28 : ffffffff80b50000 ffffffff80b53d40 0000000000000000 ffffffff81afad90 [ 0.000000] Hi : 0000000000000000 [ 0.000000] Lo : 0000000000000000 [ 0.000000] epc : ffffffff81afada8 init_idle+0x130/0x270 [ 0.000000] ra : ffffffff81afad90 init_idle+0x118/0x270 [ 0.000000] Status: 540000e2 KX SX UX KERNEL EXL [ 0.000000] Cause : 00000008 (ExcCode 02) [ 0.000000] BadVA : 0000000000000000 [ 0.000000] PrId : 00006305 (ICT Loongson-3) [ 0.000000] Process swapper (pid: 0, threadinfo=(____ptrval____), task=(____ptrval____), tls=0000000000000000) [ 0.000000] Stack : 9800000005dfbf00 ffffffff8178e950 0000000000000000 0000000000000000 [ 0.000000] 0000000000000000 ffffffff81970000 000000000000003f ffffffff810a6528 [ 0.000000] 0000000000000001 9800000005dfbe80 9800000005dfbf00 ffffffff81980000 [ 0.000000] ffffffff810a6450 ffffffff81afb6c0 0000000000000000 ffffffff810a2258 [ 0.000000] ffffffff81d82ec8 ffffffff8198d010 ffffffff81b67e80 ffffffff8197dd98 [ 0.000000] ffffffff81d81c80 ffffffff81930000 0000000000000040 0000000000000000 [ 0.000000] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 0.000000] 0000000000000000 000000000000009e ffffffff9fc01000 0000000000000000 [ 0.000000] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 0.000000] 0000000000000000 ffffffff81ae86dc ffffffff81b3c741 0000000000000002 [ 0.000000] ... [ 0.000000] Call Trace: [ 0.000000] [<ffffffff81afada8>] init_idle+0x130/0x270 [ 0.000000] [<ffffffff81afb6c0>] sched_init+0x5c8/0x6c0 [ 0.000000] [<ffffffff81ae86dc>] start_kernel+0x27c/0x7a8
This bug has been reported to LLVM[2] and affects version from (at least) 18 to 21. Let's work around this by using inline assembly to assign $gp before a fix is widely available.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 4, 2026 | Jun 4, 2026 |
| Ubuntu | — | Upgrade linux-image-generic-6.8Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-azure-5.15Upgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-laptop-23.10Upgrade linux-image-raspi-6.8Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-generic-64k-6.8Upgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1060-raspiUpgrade linux-image-6.8.0-1057-oracle-64kUpgrade linux-image-6.8.0-1029-nvidia-tegra-rtUpgrade linux-image-6.8.0-1063-gcp-fipsUpgrade linux-image-6.8.0-1045-gkeopUpgrade linux-image-kvmUpgrade linux-image-xilinxUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1117-azureUpgrade linux-image-gke-64k-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-6.8.0-1058-nvidia-lowlatency-64kUpgrade linux-image-fips-5.15Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-134-lowlatencyUpgrade linux-image-aws-64k-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-1060-awsUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-6.8.0-1058-gkeUpgrade linux-image-raspi-5.15Upgrade linux-image-6.8.0-1060-aws-fipsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1060-ibmUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-gcp-5.15Upgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-6.8.0-1060-aws-64kUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-gcpUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-virtualUpgrade linux-image-6.8.0-134-fipsUpgrade linux-image-awsUpgrade linux-image-gke-64kUpgrade linux-image-virtual-5.15Upgrade linux-image-oracle-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-1062-azure-fipsUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-134-genericUpgrade linux-image-realtime-6.8.1Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-realtimeUpgrade linux-image-fips-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-azure-fde-6.8Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-gcp-64kUpgrade linux-image-xilinx-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1058-nvidiaUpgrade linux-image-oracleUpgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-raspi-nolpaeUpgrade linux-image-oracle-6.8Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-5.15Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-134-lowlatency-64kUpgrade linux-image-ibm-5.15Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-azureUpgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-aws-fips-5.15Upgrade linux-image-oem-22.04aUpgrade linux-image-oracle-5.15Upgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-virtual-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-nvidia-6.8Upgrade linux-image-aws-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-5.15Upgrade linux-image-genericUpgrade linux-image-gkeopUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1063-gcpUpgrade linux-image-oem-20.04bUpgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-gkeop-6.8Upgrade linux-image-azure-fde-5.15Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-6.8.0-1058-nvidia-64kUpgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1058-nvidia-lowlatencyUpgrade linux-image-6.8.0-1063-gcp-64kUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-20.04cUpgrade linux-image-raspiUpgrade linux-image-azure-lts-22.04Upgrade linux-image-kvm-5.15Upgrade linux-image-gke-5.15Upgrade linux-image-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1057-oracleUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-6.8.0-1058-gke-64kUpgrade linux-image-gke-6.8Upgrade linux-image-gkeUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.1-1055-realtimeUpgrade linux-image-6.8.0-2049-raspi-realtimeUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-nvidiaUpgrade linux-image-generic-64k-5.15Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-azure-fips-5.15Upgrade linux-image-nvidia-5.15Upgrade linux-image-6.8.0-134-generic-64kUpgrade linux-image-6.8.0-1029-nvidia-tegra | Jul 2, 2026 | Jul 1, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 6, 2026 | Jun 3, 2026 |
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