Em firmwares UEFI baseados na plataforma aberta TianoCore EDK2, frequentemente utilizados em sistemas de servidores, foram identificadas 9 vulnerabilidades com o nome de código coletivo PixieFAIL. As vulnerabilidades estão presentes na pilha de rede dos firmwares, utilizada para a inicialização de rede (PXE). As vulnerabilidades mais graves permitem que um atacante não autenticado execute remotamente seu código no nível do firmware em sistemas que permitem a inicialização PXE utilizando a rede IPv6.
Problemas menos graves podem resultar em negação de serviço (bloqueio da inicialização), vazamento de informações, envenenamento de cache DNS e interceptação de sessões TCP. A maioria das vulnerabilidades pode ser explorada a partir da rede local, mas algumas permitem ataque a partir de redes externas. Um cenário típico de ataque envolve monitorar o tráfego na rede local e enviar pacotes especialmente formatados ao detectar atividade relacionada à inicialização do sistema via PXE. O acesso à servidor inicialização ou ao servidor DHCP não é necessário. Protótipos de exploits foram publicados para demonstrar a técnica de ataque.
Firmwares UEFI baseados na plataforma TianoCore EDK2 são utilizados em muitas grandes empresas, provedores de nuvem, data centers e clusters computacionais. Especificamente, o módulo vulnerável NetworkPkg, que implementa a inicialização PXE, é utilizado em firmwares desenvolvidos por empresas como ARM, Insyde Software (Insyde H20 UEFI BIOS), American Megatrends (AMI Aptio OpenEdition), Phoenix Technologies (SecureCore), Intel, Dell e Microsoft (Project Mu). Acreditava-se que as vulnerabilidades também afetavam a plataforma ChromeOS, pois existe um pacote EDK2 em seu repositório, mas a empresa Google declarou que esse pacote não é utilizado em firmwares para dispositivos Chromebook e que a plataforma ChromeOS não está sujeita a esse problema.
Vulnerabilidades identificadas:
- CVE-2023-45230 — estouro de buffer no código do cliente DHCPv6, explorado através da transmissão de um identificador excessivamente longo servidor (opção Server ID).
- CVE-2023-45234 — estouro de buffer ao processar a opção com parâmetros de servidor DNS transmitidos na mensagem que anuncia a presença do servidor DHCPv6.
- CVE-2023-45235 — estouro de buffer ao processar a opção com o identificador do servidor (Server ID) em mensagens que anunciam um servidor proxy para DHCPv6.
- CVE-2023-45229 — estouro inteiro através do limite inferior (underflow), manifestando-se ao processar opções IA_NA/IA_TA em mensagens DHCPv6 que anunciam o servidor DHCP.
- CVE-2023-45231 — vazamento de dados fora do buffer ao processar mensagens ND Redirect (Descoberta de Vizinhos) com valores de opção truncados.
- CVE-2023-45232 — loop infinito ao analisar opções desconhecidas no cabeçalho com parâmetros de opções de destino (Destination Options).
- CVE-2023-45233 — loop infinito ao analisar a opção PadN no cabeçalho do pacote.
- CVE-2023-45236 — uso de números de sequência TCP previsíveis, permitindo invasão na conexão TCP.
- CVE-2023-45237 — uso de um gerador de números pseudoaleatórios não confiável, que produz valores previsíveis.
As informações sobre as vulnerabilidades foram enviadas ao CERT/CC em 3 de agosto de 2023, e a data de divulgação estava marcada para 2 de novembro. No entanto, devido à necessidade de um lançamento coordenado de correções, abrangendo muitos fabricantes, a data de publicação foi adiada inicialmente para 1 de dezembro, depois para 12 de dezembro e 19 de dezembro de 2023, mas, em última instância, foi divulgada em 16 de janeiro de 2024. A Microsoft pediu que a divulgação das informações fosse adiada até maio.
Fonte: opennet.ru
