Back

MEDIUM

LoongArch: Fix address space mismatch in kexec command line lookup

Published Aug 12, 2026

Description

When searching the loaded segments for the "kexec" command line marker, the kexec_load(2) path (file_mode == 0) passes the user-space segment buffer straight to strncmp() through a bogus (char __user *) cast. This dereferences a user pointer in kernel context, which is wrong and is flagged by sparse:

arch/loongarch/kernel/machine_kexec.c:84:51: sparse: incorrect type in argument 2 (different address spaces) @@ expected char const * @@ got char [noderef] __user *

Here copy the marker-sized prefix of each segment into a small on-stack buffer with copy_from_user() before comparing, and skip segments that fault. The subsequent copy_from_user() that stages the full command line into the safe area is left unchanged.

Affected products

Remediation

Red Hat statement

This issue affects LoongArch systems using kexec_load(). The kernel incorrectly dereferences user-space segment buffers when searching for the kexec command line marker. Systems not using LoongArch are not affected.

Weaknesses (1)

References (9)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner Linux
Published Aug 12, 2026
Updated Aug 17, 2026
Reserved Jul 30, 2026
NVD
Status Received
Modified Aug 17, 2026
Red Hat
Severity Moderate
Public date Aug 12, 2026
ENISA EUVD
Assigner Linux
Published Aug 12, 2026
Updated Aug 17, 2026
Exploited since n/a
EUVD-2026-57043