]> git.proxmox.com Git - grub2.git/commitdiff
Forbid the "devicetree" command when Secure Boot is enabled.
authorPeter Jones <pjones@redhat.com>
Wed, 24 Apr 2019 14:03:04 +0000 (10:03 -0400)
committerColin Watson <cjwatson@debian.org>
Tue, 6 Aug 2019 09:50:46 +0000 (10:50 +0100)
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Steve McIntyre <93sam@debian.org>
Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927888#15
Bug-Debian: https://bugs.debian.org/927888
Last-Update: 2019-05-04

Patch-Name: no-devicetree-if-secure-boot.patch

grub-core/loader/arm/linux.c
grub-core/loader/efi/fdt.c

index 51684914cfc547386d410aeedac8e914b1ab44f4..092e8e307751446c95cf6a9ea1ba0dcb577fa8bc 100644 (file)
 #include <grub/linux.h>
 #include <grub/verify.h>
 
+#ifdef GRUB_MACHINE_EFI
+#include <grub/efi/efi.h>
+#endif
+
 GRUB_MOD_LICENSE ("GPLv3+");
 
 static grub_dl_t my_mod;
@@ -471,6 +475,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)),
   if (argc != 1)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected"));
 
+#ifdef GRUB_MACHINE_EFI
+  if (grub_efi_secure_boot ())
+    {
+      return grub_error (GRUB_ERR_ACCESS_DENIED,
+                 "Secure Boot forbids loading devicetree from %s", argv[0]);
+    }
+#endif
+
   dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE);
   if (!dtb)
     return grub_errno;
index ee9c5592c7008813649ff50840b930195b602fd8..f0c2d91be222d4074f2ac222f1ba80bb4621ccc7 100644 (file)
@@ -123,6 +123,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)),
       return GRUB_ERR_NONE;
     }
 
+#ifdef GRUB_MACHINE_EFI
+  if (grub_efi_secure_boot ())
+    {
+      return grub_error (GRUB_ERR_ACCESS_DENIED,
+                 "Secure Boot forbids loading devicetree from %s", argv[0]);
+    }
+#endif
+
   dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE);
   if (!dtb)
     goto out;