This was sent to guix-security a few weeks ago. However, the issues it 
describes are public, so I'm forwarding it to this mailing list.

The guix-security mailing list is only for reports of secret problems.

----- Original message -----
From: Efraim Flashner <efr...@flashner.co.il>
To: guix-secur...@gnu.org
Subject: Security issues with grub?
Date: Wednesday, March 05, 2025 07:45

Forwarding along an email I received.

-- 
Efraim Flashner   <efr...@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
--- Begin Message ---
Hi,

I forgot to contact you about security vulnerabilities in GRUB.

In a nutshell there is[1]:
- Secure boot bypass. Guix is marginally affected. 
  It affects all flavor of secure boot: 
  - 100% encrypted disks + passphrase to access GRUB
  - any form of gpg based secure boot
  - UEFI secure boot.
  While Guix doesn't support UEFI secure boot and (2) Guix probably
  doesn't support the other flavors of secure boot either through its
  configuration system, it is still possible to (re-)use Guix to build
  GRUB images that are involved in secure boot. It however require a
  custom grub.cfg not provided by Guix. 

- Arbitrary execution of code may be doable through the filesystem,
  but it's unclear if a file not owned by root could do that as of few
  days ago there were no known exploits for these CVEs.

- It might also possible to craft JPEG files to gain arbitrary
  execution of code, but that might need to be included in a GRUB theme
  somehow by users.

It is however really messy to fix as the only way to fix is to use the
latest git revision due to the lack of resources of the GRUB
maintainers / package[2], and in Guix that means that we need to
unbundle gnulib at least.

In any case if you are interested, I've started working on it[3] but the
patches I came with have several issues:

- We can't merge them as-is because building an image stops working. I'm
  not familiar enough with the non-package code to really understand the
  issue.

- GRUB builds fine on x86_64 computers but not on i686 computers
  (tested on a core duo), but it builds fine on x86_64 with
  --system=i686-linux. I'll try to reproduce in a standalone VM somehow
  as I didn't manage to create a 'build-vm' with a core duo, and I would
  need to find a way to tell Guix to build the rootfs for i686 anyway.

I've already tested this change with grub-coreoot on real hardware
though.

References:
-----------
[1]https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00024.html
[2]https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00124.html
[3]https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76208

Denis.

Attachment: pgpjTHt_QWTll.pgp
Description: OpenPGP digital signature


--- End Message ---

Attachment: signature.asc
Description: PGP signature

Reply via email to