LoongArch: Fix address space mismatch in kexec command line lookup
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.114, 6.18.42, 7.1.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: LoongArch: Fix address space mismatch in kexec command line lookup 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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 · fixed in 3b71f51fa3a247921408879eab2ddee82da8a980; From 4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 · fixed in eaa908d8d523b0ab75dab5ebd6662e70af5e5d7e; From 4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 · fixed in a94d6726ec8680a2b0c453fc782a543f68a1ea06; From 4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 · fixed in 7a54e0cbaad4a5a09e7cc7a4f05d181048e98ca7; From 4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 · fixed in 485ed44db5694d8d2e5027f63ad608e705286f30
- Linux Linux
6.1
- KernelLinux
From 6.1.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6