UEFI Secure Boot: Revocation of shim binaries older than version 15.4

Updated -

The revocation mechanism

The Unified Extensible Firmware Interface (UEFI) Forum provides Revocation List files that you can use to update the Secure Boot Forbidden Signature Database (dbx). This database contains the signatures of revoked binaries and certificates which must not be used if Secure Boot is enabled. The operating system usually performs the dbx update, or sometimes it is part of the firmware update.

shim is a first-stage boot loader that embeds a self-signed Certificate Authority (CA) certificate. Microsoft signs shim binaries, which ensures that they can be booted on all machines with a pre-loaded Microsoft certificate. shim uses the embedded certificate to verify the signature of the GRUB 2 boot loader. shim also provides a protocol that GRUB 2 uses to verify the kernel signature.

Boot loader binaries revoked due to a vulnerability

The recent GRUB 2 vulnerability requires all shim binaries that allow to boot the vulnerable GRUB 2 binaries to be revoked. This prevents an attacker from downgrading GRUB 2 to a vulnerable version. In the case of RHEL, these are shim binaries provided by shim packages older than version 15.4. The UEFI Revocation List files, which contain the signatures of all of these shim binaries, were released on April 29, 2021. However, all operating system and hardware vendors are currently instructed not to update the dbx database automatically.

The solution on RHEL

Red Hat will distribute shim 15.4 or later as soon as possible for all supported releases of RHEL. Although Red Hat follows the instruction not to update the dbx database automatically, it has no control over the actions of other vendors. If the dbx update occurs before shim 15.4 or later is installed, it can cause the firmware to prevent a supported release of RHEL from booting.

The solution is to enroll the signature of the current shim binary in the Authorized Signature Database (db). The binary is located on the EFI System Partition in the /EFI/redhat/ directory. The name of the binary depends on the machine architecture and UEFI implementation:

Architecture UEFI implementation shim binary
64-bit AMD and Intel (x86_64) 64-bit
32-bit
/EFI/redhat/shimx64.efi
/EFI/redhat/shimia32.efi
64-bit ARM (aarch64) 64-bit /EFI/redhat/shimaa64.efi

In most cases, you can enroll the signature in the firmware settings. However, the procedure could differ from vendor to vendor. For details, see the documentation of your machine.

Comments