Header bannerHeader banner
January 21, 2025

From Trust to Trouble: The Supply Chain Implications of a Broken DBX

Binarly REsearch

Last week, researchers at ESET publicly documented CVE-2024-7344, a vulnerability that allows bypassing UEFI Secure Boot, a problem affecting the majority of UEFI-based systems and shines a spotlight on critical weaknesses in the system that’s supposed to protect how our computers start up.

In short, ESET researchers found a vulnerable UEFI application in-the-wild, developed by Howyar Technologies and signed with Microsoft’s third-party UEFI certificate. This is the same certificate used to sign the Linux first-stage bootloader shim and frequently found installed in devices. The signed application allows attackers to load and execute unsigned code, thus breaking the chain-of-trust that Secure Boot is designed to maintain. The use of third-party signed components in the UEFI ecosystem poses a similar problem to the BYOVD (Bring Your Own Vulnerable Driver) problem. The sheer diversity of those trusted components makes it difficult to maintain control of their trustworthiness.

UEFI Secure Boot was designed to handle this problem.  It contains a mechanism to block the execution of UEFI applications that are found to be vulnerable. This mechanism, known as the UEFI revocation list, is implemented through the dbx database, which contains a list of certificates, signatures and Authenticode hashes associated with known vulnerable drivers and bootloaders. For example, the infamous BlackLotus bootkit exploited Baton Drop (CVE-2022-21894), a vulnerability in the Windows UEFI bootloader, to bypass Secure Boot. In response, any bootloader vulnerable to Baton Drop was added to the UEFI revocation list, essentially mitigating this security issue. While dbx has its own sets of problems, it’s the only way to stop UEFI firmware from running vulnerable bootloaders.

In the last year, Binarly REsearch discovered PKfail, showing weak spots in trusting Secure Boot, specifically through the prism of the dbx security concept.

The aftermath of ESET’s findings were also similar: the Authenticode hashes of the vulnerable applications were added to the revocation list and distributed by Microsoft through an update.

In this blog we present a retrospective view on how updates to dbx were handled, both for this new CVE and in the past. We noticed several shortcomings around how these dbx updates are published and distributed across the ecosystem, effectively leaving users vulnerable to Secure Boot bypasses. The primary issue is that different parts of the ecosystem rely on different revocation lists: Microsoft releases dbx updates directly through the operating system, device vendors follow the list published on the UEFI Forum website, while Linux users receive updates via LVFS. When these lists are not kept synchronized, security vulnerabilities are inevitable.

In particular, we found that the once-“official” source of updates for dbx – the UEFI Forum website – has been distributing an outdated version of the dbx for the last six months. This version didn’t include any of the hashes related to CVE-2024-28924 (another Secure Boot bypass based on a module developed by SecurStar), leaving any system using this list open to Secure Boot bypasses.  

This is a summary timeline of events discussed in this blog post:

  • 2023-05-09: Microsoft and the UEFI Forum publish an updated dbx to stop Black Lotus (dbx “version 371”)
  • 2023-05-09: LVFS begins distributing the updated dbx to protect impacted users  
  • 2024-07-17: Microsoft publishes the DBX2024 update packages, with modules related to CVE-2024-28924 (SecureStar) 
  • 2025-01-06: Microsoft updates dbx CSV file with hashes of modules related to CVE-2024-7344 (Howyar)
  • 2025-01-14: Microsoft releases security bulletin with CVE-2024-7344, CERT/CC releases VU#529659
  • 2025-01-16: ESET publicly disclose CVE-2024-7344
  • 2025-01-17: The UEFI forum website (incorrectly) reports it is distributing dbx files to protect against CVE-2024-7344   
  • 2025-01-17: Microsoft releases signed dbx updates for CVE-2024-7344 which are eventually (correctly) distributed on the UEFI Forum website.

Broken Trust: Examining the UEFI Forum’s Revocation List

Ideally, the revocation of an application that can be leveraged to bypass Secure Boot should be publicly documented and included in a central repository of known vulnerable applications. This approach would provide the entire UEFI ecosystem with a single authoritative source of truth.  This source of truth used to be the list published on the UEFI Forum website. 

When we started working on this REsearch (on Friday, January 17, 2025), the UEFI forum webpage stated that “The x86 and x64 files were updated January 14, 2025” to address ESET’s findings.  However, we discovered that this didn’t match with reality. The x86 and x64 binary dbx files, as well as the informational CSV file, contained no references to the vulnerable applications identified by ESET.

Not only that, a closer examination on the contents of the CSV file and the binary files containing the dbx data revealed more discrepancies:

  1. The CSV file was missing some entries that were present in the binary files. 
  2. The CSV file included some entries that were missing in the binary files.

The first discrepancy is primarily a “documentation” issue, making it harder to trace a specific hash to its associated security issue or CVE. However, the second discrepancy could instead represent a security issue, as the dbx binary file is what’s finally installed and used by UEFI firmware to determine whether a module should be executed. Fortunately, this was not the case, as we confirmed that one hash (“5C39F0E5..”) was included in the CSV by mistake, while the other three (e.g., “7EAC80A..”) are related to unsigned modules, raising questions about why they were included in the CSV in the first place.  

The situation eventually revolved on Saturday, January 18, 2025. Around 7:00pm UTC we noticed that the files on the UEFI Forum website were updated to reflect the disclosure of CVE-2024-7344. 

This is not the first time that the UEFI Forum has made an error regarding the revocation list. In 2023, ESET discovered that in 2022 the UEFI Forum mistakenly added the SHA256 hashes of two vulnerable drivers, instead of their Authenticode hash – which is what is computed to verify an image during boot. This oversight left the doors wide open for known Secure Boot bypasses for more than a year.

ESET Research social media post revealing two vulnerable UEFI binaries

These discrepancies add unnecessary confusion to an issue that is already complex and not always well understood within the ecosystem, yet remains crucial for ensuring computer systems are booted securely.

A Divergence in UEFI Revocation Lists

Going back to the recently discovered CVE-2024-7344, references to ESET’s findings were firstly added in a second, parallel revocation list maintained by Microsoft. Ideally, this list should have always been aligned with the “official” UEFI Forum list, but in reality we found that they diverged: before Saturday 18th, Microsoft’s revocation list contained 643 entries, while the official UEFI Forum binaries included only 596 entries. The following table shows some of the differences between the Microsoft CSV information and the UEFI Forum “version 371” list. 

Authenticode Hash

Filename

Partner

CVE

Date

C452AB846073DF5ACE25CCA64D6B7A09D906308A1A65EB5240E3C4EBCAA9CC0C

Alt Linux LTD

CVE-2020-10713; ...

20-Jul

7EAC80A915C84CD4AFEC638904D94EB168A8557951A4D539B0713028552B6B8C

grubx64.efi

Canonical

CVE-2020-10713; ...

20-Jul

E7681F153121EA1E67F74BBCB0CDC5E502702C1B8CC55FB65D702DFBA948B5F4

gcdx64.efi

Canonical

CVE-2020-10713; ...

20-Jul

804E354C6368BB27A90FAE8E498A57052B293418259A019C4F53A2007254490F

grubnetx64.efi

Canonical

CVE-2020-10713; ...

20-Jul

5C39F0E5E0E7FA3BE05090813B13D161ACAF48494FDE6233B452C416D29CDDBE

EgoSecure

CVE-2020-10713; ...

20-Jul

15DD2FF6416858790A5241C335F675540750F611110A5D2D67B4517D08260AF9

BootAuth (2).efi

SecurStar

CVE-2024-28924

9-Apr

B1BC5EF4F5C7E8F683601217650F42E7D69EFC0098C22A4989C7990B7771C277

Bootauth.efi

SecurStar

CVE-2024-28924

9-Apr

39E7DA89CA9899B8CA2CB826D7FD910E525AC9E6784D54D8316E00650156A341

BootAuth_1 (2).efi

SecurStar

CVE-2024-28924

9-Apr

20082B6101F8D7DADE206F4FDEB367622C11F809C4CF2D215D834460179EF2DD

BootAuth_1.efi

SecurStar

CVE-2024-28924

9-Apr

1E73F9DCF231163C9B99C9632B0C379B94209B068EDA8945951F125EDD6ACC9F

BootAuth_10.efi

SecurStar

CVE-2024-28924

9-Apr

08D13A5AB1795D47A3830FB3E34437882514E0FFC9BCEE122227C354D29FFD1D

BootAuth_11.efi

SecurStar

CVE-2024-28924

9-Apr

9E531D100AC08C28833FAD3CA5D3B863BD1323D2F118F83D9DB2B21407CA9E64

BootAuth_12.efi

SecurStar

CVE-2024-28924

9-Apr

73782E2981C4EED10CA0170DD06B2ADF54B1B6E95112FC60DB610C1039E3931A

BootAuth_13.efi

SecurStar

CVE-2024-28924

9-Apr

4561A888723EF5D879B44B02144125C9566D4FC7C674EE5A6E3246E6457F3DF9

BootAuth_14.efi

SecurStar

CVE-2024-28924

9-Apr

DB34CFA2F5239656EFEB51537A7EACB98AEC10ED2B40209C0F50DCD3DF6B50CD

BootAuth_15.efi

SecurStar

CVE-2024-28924

9-Apr

0690EADBD2302957BF7912C2851C33463C855C10AD226A11BBFDC8D69D8A14B3

BootAuth_16.efi

SecurStar

CVE-2024-28924

9-Apr

FA0D9315715290276F4558DAC2368BD828789F42214F5707A932E5C518E59F80

BootAuth_17.efi

SecurStar

CVE-2024-28924

9-Apr

9B4BF870DCB0610A34E441D32669DCCE2ABE5E697C67B7C4328A891397F4DB0C

BootAuth_18.efi

SecurStar

CVE-2024-28924

9-Apr

F41DA7DEB9A214E653F738BBF4DC9168C606E71E8095E7D50215B0DCC2CF71A3

BootAuth_19.efi

SecurStar

CVE-2024-28924

9-Apr

48BEFA8CAB6DBE7493EDE483396BB41BA9D46594606174B7FBCA3C0D17E2B6AA

BootAuth_2 (2).efi

SecurStar

CVE-2024-28924

9-Apr

6CCA75EA065B35B9AAC96999DC3A4254CDE518139169C4BD160797F8E63E29ED

BootAuth_2.efi

SecurStar

CVE-2024-28924

9-Apr

109C91802D4EECA88BF607CBFA6A67449CC63F6E6E9BD0BE6B20EED263420C04

BootAuth_20.efi

SecurStar

CVE-2024-28924

9-Apr

E261C78511A77E74801F273919B0852BF44A31BC0600D188C535D88BE7ABA052

BootAuth_21.efi

SecurStar

CVE-2024-28924

9-Apr

D12924557C7E2714A9C77F64D6CD391FDD6509FC138CCDE16512EF226D15FA7F

BootAuth_22.efi

SecurStar

CVE-2024-28924

9-Apr

6C611BD22926D8778F0A6B0A095A839D6BBC40D5AD23F55B9F8560647361FFC7

BootAuth_23.efi

SecurStar

CVE-2024-28924

9-Apr

080A627E31BDC90041AD30B5604DE9EAE8C85ABDB621B5B55D25CD13ED182D06

/td>

BootAuth_24.efi

SecurStar

CVE-2024-28924

9-Apr

8A6E68D85AB00FD79783BFB955CF989BD1938F02DC57E371FB07EB1FAAF55901

BootAuth_25.efi

SecurStar

CVE-2024-28924

9-Apr

28412FA02802A3939A709F518798404582FF601E67EA9C542C78963F2EAE18FF

BootAuth_26.efi

SecurStar

CVE-2024-28924

9-Apr

EE606FA2CD686DB7554C99C4BB37D87E64F89153EF26B4CFF41834DA74EB4C1C <

BootAuth_27.efi

SecurStar

CVE-2024-28924

9-Apr

136089AB3A7DC68C19F139558F0644DC57D32E9CEB79D6E54D9D6492AD2DE614

BootAuth_28.efi

SecurStar

CVE-2024-28924

9-Apr

F5A5415ACA106C63AA6595D58861F8D7E87143BA9C742E2E2819E3411D685496

BootAuth_29.efi

SecurStar

CVE-2024-28924

9-Apr

DECF57D609F02AB417FE4DA0D96EE4388181A3C6593083AE57C5DF05F5F918F3

BootAuth_3 (2).efi

SecurStar

CVE-2024-28924

9-Apr

1E91FC3FEE40BB2B6077F7E9A31F26C2E887CE91B41E5268EE795BE53F11329B

BootAuth_3.efi

SecurStar

CVE-2024-28924

9-Apr

FF6ACFBD5962499FB8846DAF87B88320C115D7711EA645BA6742E8598E884BD8

BootAuth_30.efi

SecurStar

CVE-2024-28924

9-Apr

8C1EDB6A3F46D13CC6E58F6D2C7EFD958EC079AA029478BABA9AA9F53DB9F0E3

BootAuth_31.efi

SecurStar

CVE-2024-28924

9-Apr

5E41B89F7F471806E1917EFDD040953CC22F3F362E7B71423FF70E55B98ADB13

BootAuth_32.efi

SecurStar

CVE-2024-28924

9-Apr

8CE986614E7037218A61DB51B876341898817741ADE85156CF54BD1CD17999A6

>

BootAuth_33.efi

SecurStar

CVE-2024-28924

9-Apr

D9247336AC0D12CABF04DFD88227D1E640C0DC59739BD5B3CA17DF90B3331C3B

BootAuth_34.efi

SecurStar

CVE-2024-28924

9-Apr

ECB789C173E1FA4E604FF45A57A45B2868D8ACB1CE616D8AEEF08D5E252CCD6F

BootAuth_4.efi

SecurStar

CVE-2024-28924

9-Apr

4AA5F09F5022EEFBEE350D0DED72654D21A9E77DEEC49FEFB45994708BE11703

BootAuth_5.efi

SecurStar

CVE-2024-28924

9-Apr

ACD9B08302C0FA9C87D14920BEEE724B92144774DC095A22EE5D8F023E80D67

BootAuth_6.efi

SecurStar

CVE-2024-28924

9-Apr

7AC0BD56947B20B82303E2F47D4876540989872EC39D08DAF5635240B5EE7E9F

BootAuth_7.efi

SecurStar

CVE-2024-28924

9-Apr

2D59C29B059FE54A4F218BE5B1F37723BE29BA47CCDDF07FDEE604ECC57B3F62

BootAuth_8.efi

SecurStar

CVE-2024-28924

9-Apr

E427068FBA7A44C96515C47E9871798284A06397D4C8687DFDAFD0738026DDBB

BootAuth_9.efi

SecurStar

CVE-2024-28924

9-Apr

BB4919D8F38DBA90154F963C47BE83B665076C6EB4B230B3CEE91E4B7706CC12

LenovoBT_1.EFI

Lenovo

CVE-2024-23593

9-Apr

The lists diverged in July 2024. On this date, Microsoft published the DBX2024 update packages, with hashes related to CVE-2024-28924 (SecurStar) and to CVE-2024-23593 (LenovoBT.efi), but the UEFI Forum never picked up this update.

To investigate this divergence further, we searched online for any of the modules from Table 1, as they could potentially be used to bypass Secure Boot on devices that rely solely on the UEFI Forum list.  We confirmed that at least one of these modules is a UEFI shell signed with the Microsoft UEFI CA certificate, that enables the execution of untrusted code even with Secure Boot enabled. These vulnerable modules are cross-platform and they could be leveraged to attack any operating system, since they run before the OS is even started. 

The divergence between lists meant that any downstream user in the ecosystem that relied on the UEFI Forum list did not actually revoke modules that were publicly known to be vulnerable. For example, LVFS represents the source of truth for the Linux ecosystem, as most Linux devices receive dbx updates through LVFS. However, since the latest version of dbx available on LVFS was version 371, Linux systems remained vulnerable to publicly-known Secure Boot bypasses from at least July 2024 to January 2025. 

As of January 21, 2025, we confirm that the contents of the revocation list shared by Microsoft and on the UEFI Forum website and on LVFS, all match. This means that downstream users of these lists are protected against known threats, however, given all the above confusion, we suggest double-checking that the downloaded dbx corresponds to the most updated version.

Microsoft's revocation information also contains several inconsistencies. First, the DBX2024 update packages included the revocation information of CVE-2024-28924 and CVE-2024-23593 in the CSV file but not in the binary dbx. Additionally, the current version of the CSV – now converted to JSON – and dbx files contains mismatched architecture information. Some entries report one architecture in the CSV but have their signatures included in the dbx update for a different architecture. For example, the entry shown in this screenshot is included as part of the x86 revocation list in the JSON, but the hash is only included as part of the dbx update for ARM.

The contents of the dbx_info_msft_1_14_25.json file
The contents of the dbx_info_msft_1_14_25.json file
The contents of the arm/DBXUpdate.bin file
The contents of the arm/DBXUpdate.bin file

In total, we identified 61 instances of inconsistencies, which are all related to some of the earliest revocations from 2018. While they do not pose a security risk, they represent another example of how the revocation process must be improved.

UEFI Ecosystem vs. DBX

Updates to the dbx generally come from the operating system. For example, Microsoft’s KEK certificate is installed by default on most devices—99% of the firmware analysed in this experiment have it—allowing Microsoft to sign and deliver dbx updates. However, UEFI firmware images themselves should ideally contain the most up-to-date version of dbx. This is the only way to ensure that end-users are protected from Secure Boot bypasses, even in the absence of OS-level updates.    

To understand whether device vendors ship firmware images containing outdated dbx databases, we analyzed more than 5,000 recently released firmware images. This dataset, containing firmware from nearly all major device vendors, provides a representative view of the UEFI ecosystem. All firmware was uploaded to the Binarly Transparency Platform, which automatically identifies missing hashes and outdated dbx contained in the uploaded firmware.

Binarly Transparency Platform identifies missing hashes and outdated dbx

The results from this scan revealed that almost 60% of firmware contains an outdated dbx database. In many cases, firmware images were missing hundreds of hashes. The end result doesn’t change, since even a single missing hash is enough to leave end-users vulnerable to exploits targeting Secure Boot.

Vendor

# Analyzed firmware

# Outdated dbx

% Outdated dbx

HPE

68

58

85.29

Supermicro

119

86

72.26

Fujitsu

179

139

77.65

Acer

320

237

74.06

Dell

554

530

796

HP

530

403

76.03

Lenovo

796

350

43.96

MSI

756

298

39.41

Gigabyte

2009

1186

59.03

Total

5331

3137

58.84

Lifting the Embargo

On January 6th, 2025, Microsoft updated the public GitHub repository microsoft/secureboot_objects with information regarding Howyar Technologies' Reloader.efi file. This update potentially alerted any attackers monitoring the repository to a possible Secure Boot bypass. However, the public disclosure and the dbx update were not released until a week later on January 17, giving attackers a window of opportunity to act. When lifting an embargo on impactful vulnerabilities such as the one reported by ESET, it’s crucial to ensure that all resources are updated simultaneously, so that impacted systems can be quickly protected.

Conclusions

The UEFI Secure Boot process is a strong yet-delicate security feature and the dbx plays an important role in maintaining the trust: missing even a single hash in this database can completely undermine Secure Boot. Given the discrepancies we found between different revocation lists and their textual and binary content, we recommend bringing more transparency around the revocation process. This can be achieved by publicly documenting, in a standardized format, the binaries included and the specific security reasons for their inclusion. 

Different players in the UEFI industry rely on various sources for their dbx updates: Microsoft releases dbx updates directly through the operating system, device vendors follow the list published on the UEFI Forum website, and Linux users receive updates via LVFS. This fragmentation, with multiple unsynchronized sources, creates a lack of consensus across the ecosystem on what should be trusted and what should be revoked, which could lead to the security issues discussed in the blog. 

For these reasons, we strongly urge the UEFI ecosystem to establish a single, authoritative source of truth for these revocation lists. Such a unified approach would allow the ecosystem to periodically check for updates and ensure that end users are protected from firmware-level threats.

What's lurking in your firmware?