CVE-2026-46250

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
03/06/2026
Last modified:
22/07/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> MIPS: Work around LLVM bug when gp is used as global register variable<br /> <br /> On MIPS, __current_thread_info is defined as global register variable<br /> locating in $gp, and is simply assigned with new address during kernel<br /> relocation.<br /> <br /> This however is broken with LLVM, which always restores $gp if it finds<br /> $gp is clobbered in any form, including when intentionally through a<br /> global register variable. This is against GCC&amp;#39;s documentation[1], which<br /> requires a callee-saved register used as global register variable not to<br /> be restored if it&amp;#39;s clobbered.<br /> <br /> As a result, $gp will continue to point to the unrelocated kernel after<br /> the epilog of relocate_kernel(), leading to an early crash in init_idle,<br /> <br /> [ 0.000000] CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == ffffffff81afada8, ra == ffffffff81afad90<br /> [ 0.000000] Oops[#1]:<br /> [ 0.000000] CPU: 0 UID: 0 PID: 0 Comm: swapper Tainted: G W 6.19.0-rc5-00262-gd3eeb99bbc99-dirty #188 VOLUNTARY<br /> [ 0.000000] Tainted: [W]=WARN<br /> [ 0.000000] Hardware name: loongson,loongson64v-4core-virtio<br /> [ 0.000000] $ 0 : 0000000000000000 0000000000000000 0000000000000001 0000000000000000<br /> [ 0.000000] $ 4 : ffffffff80b80ec0 ffffffff80b53d48 0000000000000000 00000000000f4240<br /> [ 0.000000] $ 8 : 0000000000000100 ffffffff81d82f80 ffffffff81d82f80 0000000000000001<br /> [ 0.000000] $12 : 0000000000000000 ffffffff81776f58 00000000000005da 0000000000000002<br /> [ 0.000000] $16 : ffffffff80b80e40 0000000000000000 ffffffff80b81614 9800000005dfbe80<br /> [ 0.000000] $20 : 00000000540000e0 ffffffff81980000 0000000000000000 ffffffff80f81c80<br /> [ 0.000000] $24 : 0000000000000a26 ffffffff8114fb90<br /> [ 0.000000] $28 : ffffffff80b50000 ffffffff80b53d40 0000000000000000 ffffffff81afad90<br /> [ 0.000000] Hi : 0000000000000000<br /> [ 0.000000] Lo : 0000000000000000<br /> [ 0.000000] epc : ffffffff81afada8 init_idle+0x130/0x270<br /> [ 0.000000] ra : ffffffff81afad90 init_idle+0x118/0x270<br /> [ 0.000000] Status: 540000e2 KX SX UX KERNEL EXL<br /> [ 0.000000] Cause : 00000008 (ExcCode 02)<br /> [ 0.000000] BadVA : 0000000000000000<br /> [ 0.000000] PrId : 00006305 (ICT Loongson-3)<br /> [ 0.000000] Process swapper (pid: 0, threadinfo=(____ptrval____), task=(____ptrval____), tls=0000000000000000)<br /> [ 0.000000] Stack : 9800000005dfbf00 ffffffff8178e950 0000000000000000 0000000000000000<br /> [ 0.000000] 0000000000000000 ffffffff81970000 000000000000003f ffffffff810a6528<br /> [ 0.000000] 0000000000000001 9800000005dfbe80 9800000005dfbf00 ffffffff81980000<br /> [ 0.000000] ffffffff810a6450 ffffffff81afb6c0 0000000000000000 ffffffff810a2258<br /> [ 0.000000] ffffffff81d82ec8 ffffffff8198d010 ffffffff81b67e80 ffffffff8197dd98<br /> [ 0.000000] ffffffff81d81c80 ffffffff81930000 0000000000000040 0000000000000000<br /> [ 0.000000] 0000000000000000 0000000000000000 0000000000000000 0000000000000000<br /> [ 0.000000] 0000000000000000 000000000000009e ffffffff9fc01000 0000000000000000<br /> [ 0.000000] 0000000000000000 0000000000000000 0000000000000000 0000000000000000<br /> [ 0.000000] 0000000000000000 ffffffff81ae86dc ffffffff81b3c741 0000000000000002<br /> [ 0.000000] ...<br /> [ 0.000000] Call Trace:<br /> [ 0.000000] [] init_idle+0x130/0x270<br /> [ 0.000000] [] sched_init+0x5c8/0x6c0<br /> [ 0.000000] [] start_kernel+0x27c/0x7a8<br /> <br /> This bug has been reported to LLVM[2] and affects version from (at<br /> least) 18 to 21. Let&amp;#39;s work around this by using inline assembly to<br /> assign $gp before a fix is widely available.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.7 (including) 5.10.252 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.202 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.165 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.128 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.12.75 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.18.14 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (including) 6.19.4 (excluding)