June 10, 2025

Another Crack in the Chain of Trust: Uncovering (Yet Another) Secure Boot Bypass

By Binarly REsearch

In this blog post, the Binarly Research team documents a Secure Boot bypass that likely impacts most devices supporting UEFI. At the center of this discovery is CVE-2025-3052 (BRLY-2025-001), a memory corruption vulnerability in a module signed with Microsoft’s third-party UEFI certificate. Attackers can exploit this vulnerability to run unsigned code during the boot process, effectively bypassing Secure Boot and compromising the system’s chain of trust. Because the attacker’s code executes before the operating system even loads, it opens the door for attackers to install bootkits and undermine OS-level security defenses.

The story behind this discovery begins with a UEFI application we found on VirusTotal, signed with Microsoft’s third-party UEFI certificate. This application has been publicly available since November 2024 when it was first submitted. However, the signature data indicates it was actually signed in October 2022, suggesting it may have been circulating for much longer.

The application is a BIOS flashing tool for devices sold by DT Research, a company specializing in rugged mobile devices. Although this module was originally developed for DT Research devices only, it can run on any device that trusts the certificate with subject "Microsoft Corporation UEFI CA 2011" certificate. This includes the vast majority of systems, as the same certificate is widely used to sign the Linux bootloader shim, significantly increasing the potential impact of this vulnerability.

Figure 1. The vulnerable module signed with the Microsoft UEFI CA 2011 certificate

The root cause of this bug, once again, lies in the unsafe handling of NVRAM variables. Issues involving NVRAM variables have been a persistent problem in the UEFI ecosystem, with Binarly alone responsibly disclosing hundreds of related vulnerabilities over the past few years. Because these bugs have been so widespread and impactful, our Binarly Transparency Platform performs multiple analyses to detect these bug classes. One of these checks looks specifically for any unsafe usage of data read from NVRAM variables, and this analysis is what automatically discovered CVE-2025-3052.

As shown in the image below, the signed application reads the content of the IhisiParamBuffer variable and directly uses it as a pointer for multiple memory write operations, without performing any validation or sanity checks on its value. This allows an attacker to set the IhisiParamBuffer variable to any arbitrary address in memory, effectively granting them an arbitrary memory write primitive.

Figure 2. The signed module blindly trusting an NVRAM variable for memory writes  (CVE-2025-3052)

We reported this finding to CERT/CC on February 26, 2025. During our disclosure with Microsoft, it became clear that this issue wasn’t limited to a single module, but it actually affected 14 different modules. For this reason, to address CVE-2025-3052, Microsoft added 14 new hashes to the Secure Boot dbx as a mitigation measure, which was delivered as part of Patch Tuesday on June 10, 2025.

Secure Boot and Microsoft Certificates

Before delving into the details of CVE-2025-3052, let’s recap what Secure Boot is and what security problems it solves. First of all, Secure Boot plays a crucial role in the chain of trust built by UEFI. It can be thought of as a bridge connecting the system’s firmware to the operating system, carrying trust from one bank to the other. At the end of the DXE phase, with the platform initialized, the firmware is ready to boot the OS. With Secure Boot, the firmware cryptographically verifies the integrity and authenticity of the OS loader before handing over control. This check stops attackers from replacing the legitimate OS loader with a malicious component, such as a bootkit. Without Secure Boot, it is trivial for attackers to gain early execution, compromising OS defenses before the OS even has a chance to install them.

Figure 3. Summary of the UEFI Secure Boot signing and verification process

UEFI applications are signed with the private part of a signing certificate (leaf certificate on the image) that chains through one or more intermediate certificates to a trusted, root CA certificate from db. This is for example what happens with applications signed by Microsoft, where the private key of the certificate with subject “Microsoft Corporation UEFI CA 2011” signs the signing/leaf certificate, whose private key is in turn used to sign the Authentocode hash of the UEFI Application.

The verification process is instead based on two signature databases: db and dbx. The db contains a list of trusted Authenticode hashes and root certificates:

  • if any Authenticode hash in the db matches the application’s Authenticode hash, the application is allowed to run
  • if any root certificate in the db successfully verifies the application’s certificate chain, the application is allowed to run

The dbx instead contains Authenticode hashes and certificates that are untrusted or revoked.

Depending on whether the application is signed, the firmware allows execution based on either its Authenticode hash or CA certificate being present in the db and not present in the dbx. By default, most devices are shipped with at least these trusted certificates present in db:

  1. Microsoft Windows Production PCA 2011 — used to sign the Windows bootloader.
  2. Microsoft Corporation UEFI CA 2011 — used to validate third-party bootloaders and components.
  3. OEM-owned certificate(s) — specific to the hardware manufacturer, typically used for hardware-related or servicing modules.

The second certificate is the one used to sign the vulnerable application. As previously mentioned, this certificate is widely trusted and present in db, since it’s used to sign components like the Linux’s shim, the EFI application responsible for booting Linux systems.

The Beginning: Module Discovery and Reconnaissance

This REsearch began after the discovery of the vulnerable UEFI module on VirusTotal. The first submission on VT was done in November 2024 but the signing time dates back to October 2022, meaning that this module may have been around for a longer time. The original submission filename was Dtbios-efi64-71.22.efi.The filename, combined with details from the Authenticode certificate and strings found within the binary itself, led us to conclude that the module has been developed by “DT Research, Inc”.

Additionally, the name of the vulnerable NVRAM variable immediately pointed to Insyde as the Independent BIOS Vendor (IBV) involved. This same variable had already been at the center of two vulnerabilities we previously reported: BRLY-2022-023 and BRLY-2023-005.

After some reversing, we also conclude that the module is a BIOS update utility, as it reads a BIOS image from a file and attempts to flash it onto the device’s ROM.

Figure 4. A screenshot from VirusTotal of the vulnerable module

The Intermezzo: Finding and Exploiting CVE-2025-3052

Our Binarly Transparency Platform can automatically detect a wide range of UEFI-related vulnerabilities, including issues involving NVRAM variable handling. As a result, identifying the vulnerability behind CVE-2025-3052 was as simple as uploading the affected module to our platform.

The generated report (shown in the image below) immediately revealed the impact of this finding: the root cause behind the vulnerability is the use of untrusted pointers originating from an NVRAM variable. Additionally, our patented reachability metric confirmed that the vulnerable function is directly accessible from the module's entry point, thus likely exploitable.

Figure 5. The report generated by the Binarly Transparency Platform.

The pseudocode shown in the next image, generated by our platform as evidence of the issue, enabled quick and effective triaging of the vulnerability. This pseudocode is generated using Binarly’s program analysis framework delivering comprehensive static analysis techniques.

The vulnerable function reads the value of the IhisiParamBuffer NVRAM variable and stores it in a global variable located at address 0xf7a0. Later, the value of this global variable plus 0x18 is used as the target address for a memory write operation, setting it to zero. Subsequent writes are also attacker-controlled, since var2 points to the same NVRAM variable (our platform generates independent findings for these additional write operations as well).

Figure 6. The pseudo-code generated as evidence of the finding.

While this write capability is constrained, as it only allows writing zeros or a few constants to an arbitrary address, it provides a powerful primitive that can be exploited in a variety of creative ways. For our proof of concept (PoC), we chose to overwrite the global variable gSecurity2. This variable holds a pointer to the Security2 Architectural Protocol, which the LoadImage function uses to enforce Secure Boot. By setting it to zero, we effectively disable Secure Boot, allowing the execution of any unsigned UEFI modules.

One prerequisite for this vulnerability is that the IhisiParamBuffer variable must be writable. On Insyde-based devices, this variable is often locked and read-only. Therefore, unless there is another vulnerability (such as BRLY-2023-005, which allows setting arbitrary variables even if locked) Insyde-based devices are not vulnerable.

All other devices, however, remain vulnerable. Thinking about it, this situation is quite unique and it highlights, once again, the complexities surrounding the UEFI supply chain security, where a mistake by one vendor can affect the entire ecosystem, except for the vendor itself!

The following figure provides a high-level overview of an attack leveraging CVE-2025-3052. A privileged attacker can set the IhisiParamBuffer variable from the operating system (Step 1) and register the vulnerable module in the UEFI Boot Manager, or replace an existing OS loader with the malicious module.

Additionally, the attacker registers a second unsigned module containing the actual payload they intend to execute (Step 2). After the victim's device reboots (Step 3) and the firmware enters the Boot Device Selection (BDS) phase, the vulnerable module is executed. Its arbitrary write capability allows the attacker to overwrite gSecurity2, effectively disabling Secure Boot. With Secure Boot disabled, the second unsigned module is then loaded and executed by the firmware, granting the attacker arbitrary code execution at the end of the DXE phase (Step 4).

Figure 7. The high-level overview of a PoC exploiting CVE-2025-3052

Based on the previous description, we recorded a demo video demonstrating the different stages of this PoC. One important aspect is that the PoC is transparent to the operating system: as shown at the end of the video (at minute 1:07), Secure Boot still appears to be enabled from the OS, even though it has been effectively bypassed.

The Conclusion: Disclosure and Remediation for CVE-2025-3052

After discovering this vulnerability, we opened a case with CERT/CC on February 26, 2025 to notify the affected parties and help provide a fix and detection for impacted Binarly customers.

During the triage process, Microsoft determined that the issue did not affect just a single module as initially believed, but actually 14 different modules. For this reason, the updated dbx released during the Patch Tuesday on June 10, 2025 contains 14 new hashes.

Name Authenticode SHA256 hash
BiosFlashShell-efi64-80.02.efi C54A4060B3A76FA045B7B60EEAEBC8389780376BA3EF1F63D417BA1B5528E95
BiosFlashShell-efi64-81.02.efi CBFAA286144EB2D165A6B17245BAD4F73058436C7292BE56DC6EBA29A369ADDF
Dtbios-efi64-70.17.efi 9D7E7174C281C6526B44C632BAA8C3320ADDD0C77DC90778CC14893882D74618
Dtbios-efi64-70.18.efi 9B1F35052CFC5FB06DABE5E8F7B747F081DA28D722DB59ADE253B9E38A7A3C76
Dtbios-efi64-70.19.efi E3CE55E584371D3F2FBCA2241EF0711FF80876EBF71BAB07D8ECEE645A40DCFC
Dtbios-efi64-70.20.efi EE093913ABBD34CB8B5EA31375179A8B55A298353C03AFE5055AA4E8E3F705EF
Dtbios-efi64-70.21.efi B4E1880425F7857B741B921D04FD9276130927CF90A427C454B970E7A2F442F9
Dtbios-efi64-70.22.efi CDA0B4A59390B36E1B654850428CBB5B4C7B5E4349E87ACDE97FB543736FF1D4
Dtbios-efi64-71.17.efi C87EFD057497F90321D62A69B311912B8EF8A045FE9C5E6BD5C8C1A4E6F39629
Dtbios-efi64-71.18.efi 9E19DD645235341A555D6AC0665591453AE13918ECD37DF22DFBEE91EAA9A2DA
Dtbios-efi64-71.19.efi 63F67824FDA998798964FF33B87441857DA92F3A8EE3E04166EEC3156E4E6B82
Dtbios-efi64-71.20.efi 0BC4F078388D41AB039F87AE84CF8D39302CCBDD70C4ADEE02263EBF6A2DD328
Dtbios-efi64-71.21.efi E2AEC271B9596A461EB6D54DB81785E4E4C615CFDA5F4504BCC0A329248A4D36
Dtbios-efi64-71.22.efi 6B4328EBCBE46ED9118FF2D4472DE329D70BA83016DF7A6F50F8AF92342160A1

In terms of remediation, we recommend that impacted users update the dbx as soon as possible. In our previous research blog “From Trust to Trouble: The Supply Chain Implications of a Broken DBX,” we described in detail the potential impact of outdated and inconsistent dbx.

Detecting CVE-2025-3052

Secure Boot bypasses continue to be a persistent issue within the UEFI ecosystem, with new vulnerabilities surfacing a few times each year. For example, in January 2025, ESET researchers disclosed the details of another Secure Boot bypass  (CVE-2024-7344). In addition, following the discrepancies we uncovered in the dbx and their supply-chain implications that we discussed earlier this year, we decided to implement a new feature in our product specifically focused on Secure Boot security. This addition ensures that the Binarly Transparency Platform users are promptly informed with precise findings about any issues affecting Secure Boot, so that they can quickly remediate them.

Here is a demonstration of the Binarly Transparency Platform detecting and reporting on this Secure Boot bypass issue.

Binarly Deep Vulnerability Analysis (DVA) technology detects automatically CVE-2025-3052 as a previously unknown vulnerability (0-day):

Binarly Mitigate technology proactively detects signed vulnerable modules in DB/DBX databases to highlight potential high-impact risks:

What's lurking in your firmware?