
Demonstra CVE-2022-34302, um bypass do Secure Boot através do bootloader assinado da New Horizon Datasys, cujo carregador PE/COFF personalizado integrado executa aplicações UEFI não assinadas.
New Horizon Datasys Reboot Restore Boot Loader - Bring Your Own Vulnerable UEFI Application (BYOVUA) - Bypass do Secure Boot através de um bootloader assinado com um carregador PE/COFF personalizado incorporado que carrega aplicações UEFI não assinadas.
Este repositório demonstra a técnica BYOVUA (Bring Your Own Vulnerable UEFI Application) explorando a CVE-2022-34302, uma vulnerabilidade de bypass do Secure Boot no boot loader da New Horizon Datasys.
Ao contrário das vulnerabilidades baseadas na UEFI Shell (CVE-2022-34301 e CVE-2022-34303), este bootloader não expõe uma UEFI Shell. Em vez disso, o shdloader.efi implementa o seu próprio carregador PE/COFF personalizado que carrega um binário de segunda fase (shdmgr.ef_) sem utilizar a função LoadImage() do firmware e sem realizar qualquer verificação de assinatura. Um atacante só precisa de substituir o shdmgr.ef_ por qualquer aplicação UEFI compatível para alcançar execução de código arbitrário com o Secure Boot ativado.
Esta é a mais perigosa das três vulnerabilidades divulgadas na investigação "One Bootloader to Load Them All". Como a Eclypsium observou: o bypass é incorporado, completamente silencioso, e não deixa qualquer indicação visual no ecrã - tornando-o invisível mesmo em sistemas com monitor e indetetável em sistemas sem cabeça, como servidores ou equipamentos industriais.
BYOVUA é o equivalente UEFI da técnica BYOVD (Bring Your Own Vulnerable Driver) utilizada ao nível do kernel. Em vez de trazer um driver de kernel assinado com uma vulnerabilidade, o atacante traz uma aplicação UEFI assinada que contém funcionalidades capazes de comprometer o Secure Boot.
Como o shdloader.efi está assinado com um certificado de confiança da Microsoft, é aceite pelo Secure Boot sem questionar, tornando-o fidedigno em qualquer sistema que inclua este certificado na sua base de dados do Secure Boot (db) - o que é praticamente todos os PCs com capacidade UEFI lançados na última década. Uma vez em execução, o seu carregador PE personalizado incorporado proporciona ao atacante a capacidade de carregar e executar código arbitrário não assinado antes do sistema operativo carregar, num ambiente onde os controlos de segurança modernos (ASLR, DEP, proteções do kernel) simplesmente não existem.
O shdloader.efi é um boot loader UEFI distribuído como parte dos produtos de restauro e recuperação de sistema da New Horizon Datasys (Reboot Restore Rx, RollBack Rx). O seu papel na cadeia de arranque legítima é carregar um componente de gestão pré-SO (shdmgr.ef_) que trata de operações de snapshot e restauro antes do sistema operativo iniciar.
| Propriedade | Valor |
|---|---|
| Ficheiro | shdloader.efi = EFI/Boot/bootx64.efi |
| Fabricante | New Horizon Datasys Inc |
| Produto | Reboot Restore Rx / RollBack Rx |
| CVE | CVE-2022-34302 |
| Assinatura | Microsoft Windows UEFI Driver Publisher → Microsoft Corporation UEFI CA 2011 |
| Descoberta | Eclypsium (Mickey Shkatov, Jesse Michael) - Agosto 2022 |
| Apresentação | DEF CON 30 - "One Bootloader to Load Them All" |
| Revogação | Adicionado ao DBX via Microsoft KB5012170 (Agosto 2022) |
A vulnerabilidade é uma falha de design na arquitetura do boot loader. Em vez de utilizar os serviços de arranque do firmware LoadImage() e StartImage() - que impõem a verificação de assinatura do Secure Boot - o shdloader.efi implementa o seu próprio carregador PE/COFF personalizado que lê, relocaliza e executa o shdmgr.ef_ diretamente a partir dos bytes brutos do disco, contornando completamente as verificações de segurança do firmware.
A questão central: um binário assinado que é fidedigno para o Secure Boot contém o seu próprio carregador de imagens que não verifica assinaturas. O firmware valida o shdloader.efi como assinado, mas uma vez em execução, este carrega o shdmgr.ef_ sem qualquer verificação. Substituir o shdmgr.ef_ por uma aplicação UEFI arbitrária resulta nessa aplicação a ser executada com acesso total ao hardware, enquanto o Secure Boot reporta como ativado.
Isto é fundamentalmente diferente da CVE-2022-34301 e CVE-2022-34303, onde o atacante precisa de interagir com uma UEFI Shell e corromper manualmente o gSecurity2 para desativar a verificação. Aqui, o bypass é automático e silencioso - sem interação do utilizador, sem saída visível, sem prompt de shell.
O shdloader.efi assinado contém a sua própria implementação de um carregador de imagens PE/COFF. Em vez de chamar o serviço de arranque LoadImage() do firmware, que invocaria os Security Architectural Protocols e verificaria a assinatura da imagem contra a base de dados do Secure Boot, o bootloader:
\EFI\Boot\shdmgr.ef_ utilizando o EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.reloc e aplica as relocalizações de baseEm nenhum momento deste processo o carregador verifica a assinatura Authenticode da imagem, consulta a base de dados do Secure Boot (db/dbx), ou invoca o EFI_SECURITY2_ARCH_PROTOCOL. A imagem é carregada puramente com base na sua validade estrutural PE/COFF.```c
// Pseudocode of what shdloader.efi does internally
//
// NOTE: This is a simplified representation. The actual
// implementation was derived from reverse engineering.
EFI_STATUS LoadShdmgr(VOID) { // Step 1: Open the file File = OpenFile(L"\EFI\Boot\shdmgr.ef_");
// Step 2: Read raw bytes (no signature check)
ReadFile(File, &Buffer, &Size);