Kexec reboot in case secure boot enabled does not keep the secure boot mode in new kernel, so later one can load unsigned kernel via legacy kexec_load. Adding a patch to fix this by retain the secure_boot flag in original kernel. Signed-off-by: Dave Young <dyoung@redhat.com>
		
			
				
	
	
		
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From: Dave Young <dyoung@redhat.com>
 | |
| 
 | |
| [PATCH] kexec/uefi: copy secure_boot flag in boot params across kexec reboot
 | |
| 
 | |
| Kexec reboot in case secure boot being enabled does not keep the secure boot
 | |
| mode in new kernel, so later one can load unsigned kernel via legacy kexec_load.
 | |
| In this state, the system is missing the protections provided by secure boot.
 | |
| 
 | |
| Adding a patch to fix this by retain the secure_boot flag in original kernel.
 | |
| 
 | |
| secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the stub.
 | |
| Fixing this issue by copying secure_boot flag across kexec reboot.
 | |
| 
 | |
| Signed-off-by: Dave Young <dyoung@redhat.com>
 | |
| ---
 | |
|  arch/x86/kernel/kexec-bzimage64.c | 1 +
 | |
|  1 file changed, 1 insertion(+)
 | |
| 
 | |
| diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c
 | |
| index 9642b9b..0539ec7 100644
 | |
| --- a/arch/x86/kernel/kexec-bzimage64.c
 | |
| +++ b/arch/x86/kernel/kexec-bzimage64.c
 | |
| @@ -178,6 +178,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr,
 | |
|  	if (efi_enabled(EFI_OLD_MEMMAP))
 | |
|  		return 0;
 | |
|  
 | |
| +	params->secure_boot = boot_params.secure_boot;
 | |
|  	ei->efi_loader_signature = current_ei->efi_loader_signature;
 | |
|  	ei->efi_systab = current_ei->efi_systab;
 | |
|  	ei->efi_systab_hi = current_ei->efi_systab_hi;
 |