No projeto OpenWrt em desenvolvimento, o conjunto de ferramentas ASU (Attended SysUpgrade) revelou vulnerabilidades críticas (CVE-2024-54143), que permitem comprometer artefatos de construção distribuídos pelo serviço sysupgrade.openwrt.org ou servidores ASU de terceiros, levando à instalação de imagens de firmware modificadas por atacantes em sistemas de usuários que utilizam o modo de "atualização assistida" através da interface web selector.openwrt.org ou da ferramenta de linha de comando attended.sysupgrade.
Para realizar com sucesso o ataque, o atacante só precisa enviar uma solicitação de criação de uma build para o servidor ASU (solicitações semelhantes podem ser enviadas por qualquer usuário sem passar por autenticação). Através de manipulações com uma lista de pacotes especialmente formatada, o atacante pode organizar o envio de imagens maliciosas previamente geradas em resposta a solicitações de build legítimas de outros usuários.
O serviço ASU é utilizado no OpenWrt para gerar e instalar atualizações de firmware sem perder as configurações existentes e pacotes instalados pelo usuário. Através da interface web ou da ferramenta de linha de comando, o usuário envia uma solicitação para gerar uma imagem de firmware atualizada, especificando os pacotes instalados em seu sistema. Após algum tempo, o servidor ASU gera a imagem correspondente ao conteúdo solicitado, após o que o usuário a baixa e grava em seu dispositivo. Uma opção adicional permite preservar as configurações existentes na nova imagem de firmware.
O ASU Server é responsável por processar solicitações de usuários, iniciando a construção automática de imagens de firmware usando a ferramenta ImageBuilder, além de manter um cache de builds previamente preparadas. Caso o usuário solicite uma imagem que já foi gerada anteriormente servidor e que ainda é relevante, o sistema imediatamente entrega a imagem existente do cache sem ativar o processo de construção.
O comportamento do ataque foi possibilitado graças a duas vulnerabilidades:
- Uma vulnerabilidade no manipulador de solicitações build_reques.py do conjunto de ferramentas Imagebuilder, que permite a injeção de comandos personalizados no processo de construção através da passagem de nomes de pacotes formatados pelo usuário. A vulnerabilidade é causada pela falta de uma verificação adequada de caracteres especiais nos nomes dos pacotes antes de sua utilização como argumentos da ferramenta make. Ao explorar essa vulnerabilidade, um atacante pode criar imagens de firmware maliciosas no servidor, assinadas com uma chave de construção válida.
- Uma vulnerabilidade na biblioteca util.py, decorrente do fato de que os hashes SHA-256, usados para verificar a presença de imagens de firmware prontas no cache, eram truncados em 12 caracteres, o que diminuía significativamente o nível de entropia e permitia que, através da colisão de hashes, um atacante criasse uma imagem maliciosa cujo hash coincidisse com uma imagem legítima. Juntamente com a vulnerabilidade no Imagebuilder, o problema dos hashes poderia ser explorado pelo atacante para "contaminar" o cache do ASU Server e armazenar nele imagens maliciosas que seriam entregues em resposta a solicitações de usuários comuns.
A alteração que possibilitou a realização do ataque foi feita em 8 de julho. O problema foi corrigido em 4 de dezembro. Para garantir o funcionamento do serviço ASU, foram utilizados servidores, sistemas distintos que não se cruzavam com os principais sistemas de construção do projeto, separando-se do OpenWrt Buildbot e sem acesso a recursos confidenciais, como chaves SSH e certificados para formar assinaturas digitais.
Os desenvolvedores do OpenWrt afirmam não ter encontrado vestígios de comprometimento da infraestrutura do projeto, mas, por precaução, reinstalaram os sistemas do zero, nos quais componentes vulneráveis foram executados. O problema não afetou as imagens oficiais distribuídas pelo site downloads.openwrt.org, e a análise dos logs de construção não revelou indícios de envios de solicitações maliciosas. Além disso, como nos servidores ASU há uma limpeza automática de construções com mais de 7 dias, realizar uma auditoria das construções antigas se tornou impossível.
A probabilidade de utilização das vulnerabilidades identificadas na prática para disseminação de imagens maliciosas através da infraestrutura do OpenWrt é avaliada pelos representantes do OpenWrt como próxima de zero; no entanto, os usuários do ASU são aconselhados a substituir os firmwares OpenWrt em seus dispositivos pela mesma versão.
Fonte: opennet.ru
