CVE-2026-64252 in Linuxinfo

Summary

by MITRE • 07/24/2026

In the Linux kernel, the following vulnerability has been resolved:

MIPS: DEC: Prevent initial console buffer from landing in XKPHYS

In 64-bit configurations calling the initial console output handler from a kernel thread other than the initial one will result in a situation where the stack has been placed in the XKPHYS 64-bit memory segment and consequently so has been the buffer allocated there that is used as the argument corresponding to the `%s' output conversion specifier for the firmware's printf() entry point.

This 64-bit address will then be truncated by 32-bit firmware, resulting in an attempt to access the wrong memory location, which in turn will cause all kinds of unpredictable behaviour, such as a kernel crash:

Console: colour dummy device 160x64 Calibrating delay loop... 49.36 BogoMIPS (lpj=192512) pid_max: default: 32768 minimum: 301 CPU 0 Unable to handle kernel paging request at virtual address 000000000203bd00, epc == ffffffffbfc08364, ra == ffffffffbfc08800 Oops[#1]:
CPU: 0 PID: 0 Comm: swapper Not tainted 5.18.0-rc2-00254-gfb649bda6f56-dirty #121 $ 0 : 0000000000000000 0000000000000001 0000000000000023 ffffffff80684ba0 $ 4 : 000000000203bd00 ffffffffbfc0f3b4 ffffffffffffffff 0000000000000073 $ 8 : 0a303d7469000000 0000000000000000 0000000000000073 ffffffffbfc0f473 $12 : 0000000000000002 0000000000000000 ffffffff80684c1c 0000000000000000 $16 : 0000000000000000 ffffffff80596dc9 0000000000000000 ffffffffbfc09240 $20 : ffffffff80684c40 ffffffffbfc0f400 000000000000002d 000000000000002b $24 : ffffffffffffffbf 000000000203bd00 $28 : ffffffff805f0000 ffffffff80684b58 0000000000000030 ffffffffbfc08800 Hi : 0000000000000000 Lo : 0000000000000aa8 epc : ffffffffbfc08364 0xffffffffbfc08364 ra : ffffffffbfc08800 0xffffffffbfc08800 Status: 140120e2 KX SX UX KERNEL EXL Cause : 00000008 (ExcCode 02) BadVA : 000000000203bd00 PrId : 00000430 (R4000SC) Modules linked in: Process swapper (pid: 0, threadinfo=(____ptrval____), task=(____ptrval____), tls=0000000000000000) Stack : 0000000000000000 0000000000000000 0000000000000000 0000004d0000004d 80684cc0806a2a40 80596dc80000004d 8061000000000000 bfc0850c80684c38 0000000000000000 000000000203bd00 0000000000000000 0000000000000000 0000000000000000 00000000bfc0f3b4 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000002500000000 0000000000000000 0000000000000000 802c1a7400000000 0203bd0080596dc8 0203bd4d69000000 6c61632000000018 5f746567646e6172 6c616320625f6d6f 5f736e5f6d6f7266 206361323778302b 303d74696e726320 806a0a38806b0000 806a0a38806b0000 00000000806b0000 80683c58806b0000 ... Call Trace:

Code: a082ffff 03e00008 00601021 <80820000> 00001821 10400005 24840001 80820000 24630001

---[ end trace 0000000000000000 ]---
Kernel panic - not syncing: Fatal exception in interrupt

KN04 V2.1k (PC: 0xa0026768, SP: 0x806848e8) >>

In this case the pointer in $4 was truncated from 0x980000000203bd00 to 0x000000000203bd00.

This may happen when no final console driver has been enabled in the configuration and consequently the initial console continues being used late into bootstrap or with an upcoming change that will switch the zs driver to use a platform device, which in turn will make the console handover happen only after other kernel threads have already been started.

Fix the issue by making the buffer static and initdata, and therefore placed in the CKSEG0 32-bit compatibility segment, observing that the console output handler is called with the console lock held, implying no need for this code to be reentrant. Add an assertion to verify the buffer actually has been placed in a compatibility segment.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 07/24/2026

This vulnerability affects the MIPS architecture implementation within the Linux kernel, specifically addressing issues related to memory segmentation and console output handling during system initialization. The problem occurs in 64-bit configurations where the initial console output handler is invoked from a kernel thread other than the primary one, leading to improper memory placement of console buffers. When the stack resides in the XKPHYS 64-bit memory segment, the associated buffer allocated there gets passed as an argument to firmware's printf() entry point, creating a critical memory addressing conflict.

The technical flaw stems from address truncation that occurs when 64-bit memory addresses are processed by 32-bit firmware components. During kernel initialization, when console output is generated, the pointer value 0x980000000203bd00 gets truncated to 0x000000000203bd00 due to firmware limitations, resulting in access to incorrect memory locations. This misalignment triggers kernel paging requests and ultimately causes system crashes with unpredictable behavior including kernel panics and fatal exceptions during interrupt handling.

The operational impact of this vulnerability is severe as it compromises system stability during early boot phases when console output is essential for debugging and monitoring. The issue manifests when no final console driver is configured, causing the initial console to remain active throughout bootstrap processes. Additionally, upcoming changes that modify driver behavior, such as switching the zs driver to use platform devices, could trigger this condition after other kernel threads have already been initialized, making the vulnerability more likely to occur in modern system configurations.

The fix implements a systematic approach by making the console buffer static and placing it in the CKSEG0 32-bit compatibility segment rather than allowing it to reside in XKPHYS memory space. This ensures that regardless of which kernel thread invokes the console output handler, the memory address will remain within the expected 32-bit range that firmware can properly handle. The solution leverages the fact that console output handlers are called with console lock held, eliminating requirements for reentrant code and making static allocation safe. An additional assertion has been added to validate that the buffer is indeed placed in a compatibility segment, providing runtime verification of the fix effectiveness.

This vulnerability demonstrates characteristics consistent with CWE-129 and CWE-787, representing issues related to improper input validation and out-of-bounds memory access. The mitigation strategy aligns with ATT&CK tactics involving privilege escalation and system stability compromise by ensuring proper memory management during critical boot phases. The solution addresses fundamental architecture-specific considerations in MIPS 64-bit implementations while maintaining backward compatibility with existing console handling mechanisms.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Want to know what is going to be exploited?

We predict KEV entries!