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.
CVSS Details
- CVSS 3.1 Base Score: 7.3
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jun 4, 2026 | Jun 4, 2026 |
| Ubuntu | — | Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidiaUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-oracle-5.15Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-generic-64k-5.15Upgrade linux-image-aws-64kUpgrade linux-image-genericUpgrade linux-image-lowlatency-5.15Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1058-nvidia-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-lpaeUpgrade linux-image-gkeopUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-oem-20.04cUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-aws-fips-5.15Upgrade linux-image-6.8.0-1057-oracleUpgrade linux-image-kvm-5.15Upgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-gkeUpgrade linux-image-intelUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-azure-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-1029-nvidia-tegraUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-134-generic-64kUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-aws-6.8Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-134-lowlatency-64kUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-virtual-6.8Upgrade linux-image-ibm-5.15Upgrade linux-image-6.8.0-1060-aws-fipsUpgrade linux-image-raspi-5.15Upgrade linux-image-oem-22.04bUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1060-ibmUpgrade linux-image-nvidia-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-azureUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-6.8.0-1058-nvidia-64kUpgrade linux-image-6.8.0-1063-gcp-64kUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1058-nvidiaUpgrade linux-image-oem-20.04dUpgrade linux-image-xilinxUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-kvmUpgrade linux-image-gke-64kUpgrade linux-image-gcpUpgrade linux-image-aws-lts-22.04Upgrade linux-image-awsUpgrade linux-image-6.8.0-134-fipsUpgrade linux-image-6.8.0-1063-gcp-fipsUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-6.8.0-1045-gkeopUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1060-raspiUpgrade linux-image-generic-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-gcp-6.8Upgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-realtimeUpgrade linux-image-oracle-6.8Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-raspi-realtimeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-oracleUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-cvmUpgrade linux-image-virtualUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-azure-5.15Upgrade linux-image-6.8.0-1057-oracle-64kUpgrade linux-image-6.8.0-1029-nvidia-tegra-rtUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-laptop-23.10Upgrade linux-image-azure-fips-6.8Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-gcp-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-realtime-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-gcp-5.15Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-6.8.0-1060-aws-64kUpgrade linux-image-6.8.0-1060-awsUpgrade linux-image-6.8.0-1058-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-ibm-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-fips-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-134-genericUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-virtual-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-gkeop-5.15Upgrade linux-image-6.8.0-1062-azure-fipsUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-fips-5.15Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-134-lowlatencyUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-6.8.0-1058-gkeUpgrade linux-image-azure-fde-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1058-gke-64kUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-gcp-fipsUpgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-2049-raspi-realtime | 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 |
Prioritize 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