Emulando e Explorando UEFI: Desvendando Vulnerabilidades na Segurança de Firmware
Durante uma auditoria do LogoFail, a NetSPI descobriu um buffer over-read no módulo UEFI PngDecoderDxe. Embora o decoder valide o tamanho total da alocação em relação a 0x7fffffff, ele não realiza verificações de limites para leituras de dados comprimidos. Ao falsificar o comprimento do chunk IDAT de um PNG para 0x90000000, o loop do descompressor tenta ler além do buffer de entrada (em 0x9000000), acessando memória pré-OS adjacente que contém chaves criptográficas e código assembly.
A NetSPI demonstrou o over-read usando um Qiling harness com chamadas AllocatePool/FreePool hookadas e regiões de heap espaçadas em 0x10000000 para observar claramente a falha UC_MEM_READ_UNMAPPED. Dados vazados poderiam ser exfiltrados via HDMI/VGA a partir do display de boot. Recomenda-se que defensores auditem parsers de imagem UEFI em busca de falta de checks de limites de leitura, independentemente das proteções de tamanho de alocação, e apliquem a técnica do Qiling harness para fuzzing em outros módulos de manipulação de imagem de firmware.
- Categoria
- CEVIU Segurança da Informação
- Publicado
- 22 de maio de 2026
- Fonte
- CEVIU Segurança da Informação
