A Eclypsium duas vulnerabilidades nos firmwares do controlador BMC fornecido em servidores Lenovo ThinkServer, permitindo que um usuário local substitua o firmware ou execute código arbitrário no lado do chip BMC.
Uma análise adicional mostrou que esses problemas também afetam os firmwares dos controladores BMC utilizados nas plataformas de servidor Gigabyte Enterprise Servers, que também são usadas em servidores de empresas como Acer, AMAX, Bigtera, Ciara, Penguin Computing e sysGen. Nos controladores BMC problemáticos, foram utilizados firmwares vulneráveis MergePoint EMS, desenvolvidos por um fornecedor externo Avocent (atualmente uma subsidiária da Vertiv).
A primeira vulnerabilidade é causada pela falta de verificação criptográfica das atualizações de firmware carregadas (apenas a verificação do CRC32 é utilizada, em contrariedade às do NIST de usar assinaturas digitais), o que permite que um atacante com acesso local ao sistema substitua o firmware BMC. A falha, por exemplo, pode ser usada para uma profunda integração de rootkit, que permanece ativo após a reinstalação do sistema operacional e bloqueia futuras atualizações de firmware (para remover o rootkit, é necessário usar um programador para regravar o SPI flash).
A segunda vulnerabilidade está presente no código de atualização do firmware e permite a inserção de seus próprios comandos, que serão executados no BMC com o mais alto nível de privilégios. Para o ataque, basta modificar o valor do parâmetro RemoteFirmwareImageFilePath no arquivo de configuração bmcfwu.cfg, que determina o caminho para a imagem do firmware a ser atualizado. Durante a próxima atualização, que pode ser iniciada por um comando no IPMI, esse parâmetro será processado pelo BMC e usado na chamada popen() como parte da string para /bin/sh. Como a string para formar o comando shell é criada usando a chamada snprintf() sem a devida limpeza de caracteres especiais, os atacantes podem injetar seu código para execução. Para explorar a vulnerabilidade, é necessário ter permissões que permitam enviar um comando ao controlador BMC via IPMI (tendo privilégios de administrador no servidor, é possível enviar um comando IPMI sem autenticação adicional).
As empresas Gigabyte e Lenovo foram informadas sobre os problemas em julho de 2018 e conseguiram lançar atualizações antes da divulgação pública das informações. A empresa Lenovo lançou atualizações de firmware em 15 de novembro de 2018 para os servidores ThinkServer RD340, TD340, RD440, RD540 e RD640, mas corrigiu apenas a vulnerabilidade que permitia a injeção de comandos, pois durante a criação da linha de servidores com base no MergePoint EMS em 2014 a verificação de firmware por assinatura digital ainda não era amplamente utilizada e não foi inicialmente declarada.
Em 8 de maio deste ano, a Gigabyte lançou atualizações de firmware para placas-mãe com controlador ASPEED AST2500, mas assim como a Lenovo, corrigiu apenas a vulnerabilidade relacionada à injeção de comandos. As placas vulneráveis com base no ASPEED AST2400 ainda permanecem sem atualização. A Gigabyte também está fazendo a transição para o uso de firmwares MegaRAC SP-X da AMI. Isso inclui novos firmwares com base no MegaRAC SP-X que serão oferecidos para sistemas anteriormente fornecidos com firmwares MergePoint EMS. A decisão foi tomada após o anúncio da Vertiv sobre a interrupção do suporte à plataforma MergePoint EMS. No entanto, até o momento, não há informações sobre atualizações de firmware para servidores fabricados pelas empresas Acer, AMAX, Bigtera, Ciara, Penguin Computing e sysGen, que utilizam placas Gigabyte e estão equipados com firmwares vulneráveis MergePoint EMS.
Lembrando que o BMC é um controlador especializado instalado em servidores, que possui sua própria CPU, memória, armazenamento e interfaces de consulta de sensores, proporcionando uma interface de baixo nível para monitoramento e gerenciamento de hardware de servidor. Com o BMC, independentemente do sistema operacional que esteja em execução no servidor, é possível monitorar o status dos sensores, gerenciar energia, firmwares e discos, organizar inicialização remota pela rede, garantir o funcionamento da console de acesso remoto, entre outros.
Fonte: opennet.ru
