UEFI Secure Boot Certificate Revocation Explained
Unified Extensible Firmware Interface (UEFI) firmware updates
maintain platform integrity by updating internal revocation lists to
block vulnerable or compromised cryptographic keys and binaries. When a
bootloader, driver, or certificate is compromised, firmware updates
modify the UEFI Secure Boot Forbidden Signature Database
(dbx) using authenticated variables. This article details
the architecture of UEFI revocation lists, how updates are
cryptographically authenticated, how delivery mechanisms deploy them,
and the safeguards used to prevent replay attacks and system
instability.
The UEFI Signature Architecture
UEFI Secure Boot relies on a hierarchy of cryptographic databases stored in non-volatile random-access memory (NVRAM):
- Platform Key (PK): Establishes trust between the platform owner and the firmware.
- Key Exchange Key (KEK): Authorizes updates to the signature databases.
- Signature Database (
db): Contains authorized signing certificates, public keys, and cryptographic hashes of trusted boot assets. - Forbidden Signature Database (
dbx): Contains the revocation list. Any binary whose signature or hash matches an entry in thedbxis blocked from executing during pre-boot, even if it is signed by a valid key in thedb.
How Firmware Updates Apply Revocations
When a signing certificate or binary is compromised—such as in widespread vulnerabilities like BootHole or BlackLotus—the revocation process prevents affected components from being used to execute arbitrary code.
- Creation of Revocation Payloads: Certificate
authorities (such as Microsoft, which signs most third-party UEFI
binaries) generate an updated
dbxbinary payload containing the SHA-256 hashes of compromised binaries or the certificates themselves. - Cryptographic Signing: The update payload is wrapped in an authenticated variable format (typically a standard PKCS#7 envelope). It must be signed by a key that chains back to the firmware's Key Exchange Key (KEK).
- Firmware Validation: When the update is delivered
to the system, the UEFI firmware inspects the payload. It verifies that
the signature matches an authorized KEK before appending the new entries
to the active
dbx. If the signature check fails, the firmware discards the update. - Monotonic Counters: To prevent rollback
attacks—where an attacker attempts to re-apply an older, smaller
dbxpayload—updates include a monotonic counter or timestamp. The firmware ensures that the incoming update version is strictly greater than the currently installed version.
Delivery Mechanisms
Revocation lists are typically delivered through two main pathways:
- Operating System Updates: Modern operating systems
can pass signed
dbxupdates directly to the firmware via runtime UEFI variables (using theSetVariable()API). In Windows, this occurs via Windows Update; in Linux, this is often handled by tools likefwupdor systemd-boot. The OS does not modify the database directly; it merely submits the signed blob to the firmware runtime services, which perform the authentication and commit the changes to NVRAM. - UEFI Capsule Updates: Hardware vendors can package revocation lists directly into system firmware/BIOS updates using the UEFI Capsule mechanism. The capsule is placed in memory or a dedicated system partition, and the platform applies the update across a reboot in a dedicated, secure execution environment.
Constraints and Failure Mitigations
Managing revocation lists introduces distinct engineering challenges:
- NVRAM Capacity Limits: NVRAM space on flash chips
is often limited to a few megabytes or less. As the
dbxgrows over time with thousands of revoked hashes, storage exhaustion can cause update failures or prevent other firmware settings from saving. To mitigate this, updates increasingly target signing certificates rather than individual file hashes whenever feasible, and vendors are gradually expanding dedicated NVRAM partitions. - Bootloader Incompatibilities: Applying a
dbxupdate immediately prevents affected bootloaders from launching. To prevent systems from becoming unbootable, operating system vendors typically orchestrate updates by installing patched, newly signed bootloaders before applying the correspondingdbxupdate that invalidates the older versions.