
Vulnerabilidade de Verificação do Servidor de Atualização de Firmware no Buffalo LS210D Versão 1.78-0.03
Christopher J. Pace e Ryan Miller
O Buffalo LS210D é um servidor de armazenamento conectado à rede (NAS) projetado e comercializado para pequenas empresas e indivíduos. Dentro do LS210D existe a capacidade de baixar e instalar remotamente uma atualização de firmware. O LS210D é vulnerável a um ataque de "Adversário no Meio", ou AitM, nesse recurso. Um atacante que controla a conexão upstream de uma vítima poderá fornecer um nome DNS incorreto para o servidor de atualização ou redirecionar o tráfego do servidor de atualização para um servidor malicioso. Isso pode levar à execução de comandos como usuário root ou à instalação direta de malware.
O arquivo /etc/init.d/update_notifications.sh é chamado pelo script do lado do servidor de atualização de firmware em /www/buffalo/www/dynamic/system/update/BufUpdate.pm. Dentro de update_notifications.sh está a seguinte linha:

Abrir este arquivo xml revela que o próprio arquivo XML também aponta para uma conexão somente HTTP:

Além disso, este arquivo zip também não é criptografado. Pesquisas anteriores sobre este modelo nos direcionaram para baixar um utilitário manual de atualização de firmware, que incluía um arquivo zip protegido por senha. O arquivo linkstation_series_1.75-0.01.zip não contém essas proteções. Dentro do arquivo está o arquivo hddrootfs.buffalo.updated, que contém o arquivo hddrootfs.buffalo, que contém o sistema de arquivos raiz do LS120D. Um atacante pode visualizar e modificar diretamente este arquivo zip para incluir seu próprio malware ou ler arquivos sensíveis.

Uma vez que um atacante tenha realizado um ataque AitM, o roteador oferecerá prontamente a instalação do firmware atualizado. Aqui está um exemplo de tal ataque, com a tela à direita mostrando as modificações necessárias em fw_info2.xml, nomeadamente adicionar 0x0000001D à tag productId e incrementar a tag do tipo de versão para uma versão maior que a versão do firmware da vítima (1.78-0.04 neste caso).

