On 04/14/22 at 09:43am, Coiby Xu wrote: > Currently, a problem faced by arm64 is if a kernel image is signed by a > MOK key, loading it via the kexec_file_load() system call would be > rejected with the error "Lockdown: kexec: kexec of unsigned images is > restricted; see man kernel_lockdown.7". > > This happens because image_verify_sig uses only the primary keyring that > contains only kernel built-in keys to verify the kexec image. > > This patch allows to verify arm64 kernel image signature using not only > .builtin_trusted_keys but also .platform and .secondary_trusted_keys > keyring. > > Fixes: 732b7b93d849 ("arm64: kexec_file: add kernel signature verification support") Cc stable? Otherwise, LGTM, Acked-by: Baoquan He <bhe@xxxxxxxxxx> > Cc: kexec@xxxxxxxxxxxxxxxxxxx > Cc: keyrings@xxxxxxxxxxxxxxx > Cc: linux-security-module@xxxxxxxxxxxxxxx > Cc: stable@xxxxxxxxxx > Co-developed-by: Michal Suchanek <msuchanek@xxxxxxx> > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx> > Acked-by: Will Deacon <will@xxxxxxxxxx> > Signed-off-by: Coiby Xu <coxu@xxxxxxxxxx> > --- > arch/arm64/kernel/kexec_image.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/arch/arm64/kernel/kexec_image.c b/arch/arm64/kernel/kexec_image.c > index 9ec34690e255..5ed6a585f21f 100644 > --- a/arch/arm64/kernel/kexec_image.c > +++ b/arch/arm64/kernel/kexec_image.c > @@ -14,7 +14,6 @@ > #include <linux/kexec.h> > #include <linux/pe.h> > #include <linux/string.h> > -#include <linux/verification.h> > #include <asm/byteorder.h> > #include <asm/cpufeature.h> > #include <asm/image.h> > @@ -130,18 +129,10 @@ static void *image_load(struct kimage *image, > return NULL; > } > > -#ifdef CONFIG_KEXEC_IMAGE_VERIFY_SIG > -static int image_verify_sig(const char *kernel, unsigned long kernel_len) > -{ > - return verify_pefile_signature(kernel, kernel_len, NULL, > - VERIFYING_KEXEC_PE_SIGNATURE); > -} > -#endif > - > const struct kexec_file_ops kexec_image_ops = { > .probe = image_probe, > .load = image_load, > #ifdef CONFIG_KEXEC_IMAGE_VERIFY_SIG > - .verify_sig = image_verify_sig, > + .verify_sig = kexec_kernel_verify_pe_sig, > #endif > }; > -- > 2.34.1 > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec