Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < 742f2c0a64a7557495e831c3c112d92e308bd4aeaffected4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < 3b71f51fa3a247921408879eab2ddee82da8a980affected4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < eaa908d8d523b0ab75dab5ebd6662e70af5e5d7eaffected4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < a94d6726ec8680a2b0c453fc782a543f68a1ea06affected4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < 7a54e0cbaad4a5a09e7cc7a4f05d181048e98ca7affected4a03b2ac06a5bcae29371866d9d11f5bfd4c9188 to < 485ed44db5694d8d2e5027f63ad608e705286f30affected
Linux Linux
Default version status: affected
6.1affected0 to < 6.1unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/742f2c0a64a7557495e831c3c112d92e308bd4ae ↗
- https://git.kernel.org/stable/c/3b71f51fa3a247921408879eab2ddee82da8a980 ↗
- https://git.kernel.org/stable/c/eaa908d8d523b0ab75dab5ebd6662e70af5e5d7e ↗
- https://git.kernel.org/stable/c/a94d6726ec8680a2b0c453fc782a543f68a1ea06 ↗
- https://git.kernel.org/stable/c/7a54e0cbaad4a5a09e7cc7a4f05d181048e98ca7 ↗
- https://git.kernel.org/stable/c/485ed44db5694d8d2e5027f63ad608e705286f30 ↗