Vulnerabilidade em firmware UEFI da Phoenix, afetando muitos dispositivos com CPU Intel

No firmware UEFI Phoenix SecureCore, utilizado em muitos laptops, PCs e servidores com processadores Intel, foi encontrada uma vulnerabilidade (CVE-2024-0762) que permite, com acesso ao sistema, executar código no nível do firmware. A vulnerabilidade pode ser explorada após um ataque bem-sucedido ao sistema para deixar um backdoor no firmware, operando sob o sistema operacional, contornando os mecanismos de segurança do SO, invisível para programas de detecção de malware e mantendo sua presença mesmo após a reinstalação do SO.

A vulnerabilidade é causada pelo uso inseguro da variável TCG2_CONFIGURATION na configuração do TPM (Trusted Platform Module), cuja manipulação pode levar a um estouro de buffer e potencial execução de código com privilégios da UEFI, ou seja, no nível SMM (System Management Mode), que é mais prioritário que o modo hypervisor e o ring zero de proteção, fornecendo acesso irrestrito a toda a memória do sistema. A vulnerabilidade está presente no código de processamento da configuração do TPM na UEFI e se manifesta independentemente da presença de um chip TPM.

A causa do estouro de buffer é a chamada dupla incorreta do serviço UEFI GetVariable, caso o valor de TCG2_CONFIGURATION exceda o tamanho originalmente alocado na pilha do buffer, sendo que ambas as chamadas utilizaram a mesma variável com o tamanho data_size sem sua modificação após a primeira chamada. Se um atacante tiver a capacidade de alterar o valor da variável UEFI TCG2_CONFIGURATION durante a operação do sistema, ele pode configurá-lo suficientemente grande para que a primeira chamada retorne o código EFI_BUFFER_TOO_SMALL. Como, após a primeira chamada, o valor de data_size em vez do tamanho originalmente reservado será alterado para o tamanho do valor da variável TCG2_CONFIGURATION, a segunda chamada resultará em um estouro de buffer.

void Function_0000537c(void){
…
ulonglong data_size;
char buffer [8];
…

EVar1 = (*gRS_2->GetVariable)
((CHAR16 *)TCG2_CONFIGURATION, &gTCG2_CONFIG_FORM_SET_GUID,
(UINT32 *)0x0, &data_size, buffer);

if (EVar1 == EFI_BUFFER_TOO_SMALL) {
EVar1 = (*gRS_2->GetVariable)
((CHAR16 *)TCG2_CONFIGURATION,&gTCG2_CONFIG_FORM_SET_GUID,
(UINT32 *)0x0,&data_size,buffer)

O problema ocorre nas versões de firmware Phoenix SecureCore, utilizadas em dispositivos com processadores Intel das famílias AlderLake, CoffeeLake, CometLake, IceLake, JasperLake, KabyLake, MeteorLake, RaptorLake, RocketLake e TigerLake. A possibilidade de realizar um ataque em um sistema específico depende das configurações do firmware e da capacidade de acesso à variável TCG2_CONFIGURATION. Um exemplo de exploração da vulnerabilidade foi demonstrado nos laptops Lenovo ThinkPad X1 Carbon da geração Gen e Lenovo ThinkPad X1 Yoga da 4ª geração. A vulnerabilidade foi corrigida nas atualizações de firmware de abril e maio da Technologies e Lenovo.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster