Arbitrary Command Injection in Smartbedded MeteoBridge
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
O Meteobridge, dispositivo que conecta estações meteorológicas domésticas a redes como Weather Underground, tem um endpoint CGI (template.cgi) vulnerável a command injection que pode ser explorado sem autenticação, resultando em execução de comandos como root. A gravidade real depende de exposição à internet: o próprio fabricante afirma que o produto não deveria estar acessível publicamente, mas o pesquisador que descobriu a falha encontrou entre 70 e 130 dispositivos expostos no Shodan em determinado momento — pequeno em número absoluto, mas suficiente para exploração em massa automatizada, o que já ocorre segundo o KEV da CISA.
Detalhamento técnico
A falha está em /cgi-bin/template.cgi, um script CGI escrito em shell que faz parte da interface web do Meteobridge (que mistura shell scripts e C). O script usa a variável QUERY_STRING — controlada inteiramente pelo atacante via parâmetros GET — e a passa, sem sanitização, para uma chamada eval dentro do shell. Isso é injeção de comando clássica (CWE-77): qualquer metacaractere de shell no parâmetro templatefile é interpretado e executado pelo interpretador, não apenas tratado como dado.
O parâmetro identificado pelo pesquisador é templatefile, injetável na forma templatefile=$(comando). Como o eval roda no contexto do processo CGI, que herda privilégios elevados no firmware embarcado, o comando injetado executa como root — não há isolamento de privilégio entre o processo web e o sistema operacional do dispositivo.
Há um segundo problema, catalogado como CWE-306 (ausência de autenticação em função crítica), que é o que transforma a falha em 'não autenticada' apesar de o painel principal exigir login. O servidor uhttpd aplica autenticação básica com credenciais do Meteobridge apenas aos diretórios /cgi-bin, /exports, /charts e /backup, conforme configurado em /etc/httpd.conf. O mesmo script template.cgi, porém, também está acessível através do diretório /public, que não tem nenhuma proteção configurada — efetivamente um bypass de autenticação por duplicação de rota.
Como é explorada
A exploração é uma requisição GET simples para /public/template.cgi?templatefile=$(comando), sem necessidade de autenticação, token CSRF ou header customizado. Isso torna o ataque viável não só por acesso direto à rede do dispositivo, mas também via CSRF-like: o pesquisador demonstrou que basta induzir a vítima a carregar uma página com uma tag cujo src apunte para a URL de exploração — o navegador da vítima, estando na mesma rede do Meteobridge, dispara a requisição automaticamente.
O CVSS oficial marca o vetor de ataque como Adjacent (AV:A), refletindo a expectativa de que o dispositivo opere em rede local. Na prática, isso é a pré-condição mais importante da falha: ela exige que o atacante tenha acesso à rede onde o Meteobridge está (diretamente, via VPN, comprometimento lateral, ou via o vetor de imagem maliciosa explorando o navegador da vítima como pivô). Dispositivos expostos diretamente à internet — via port-forwarding ou acesso remoto configurado no roteador — eliminam até essa barreira.
A presença no catálogo KEV da CISA (adicionado em outubro de 2025) confirma exploração ativa in-the-wild, e a existência de template Nuclei sugere automação de varredura e explotação em escala, comum para dispositivos IoT/embarcados expostos.
Versões
Como se proteger
A correção do fornecedor é a versão 6.2, lançada em 13 de maio de 2025. Para dispositivos dentro do programa de atualização (primeiros dois anos após compra de licença, licença de atualização válida, ou hardware PRO/PRO2/NANO), basta selecionar 'newest on boot' em System → Administration e reiniciar. Para dispositivos fora do suporte de atualização, o fabricante orienta reiniciar com qualquer opção de versão diferente de 'use installed version' para aplicar o fix.
O controle compensatório mais eficaz, reiterado pelo próprio fabricante no advisory, é nunca expor o Meteobridge diretamente à internet — nem via port-forwarding no roteador nem via acesso remoto configurado. Isso não corrige a vulnerabilidade em si, mas elimina a pré-condição de rede que a maioria dos cenários de exploração exige (AV:A). Não confiar apenas nisso, porém: o vetor de imagem maliciosa mostra que dispositivos em LAN ainda são atingíveis através do navegador de um usuário interno, então isolar a interface de administração por segmentação de rede ou VLAN dedicada é mais robusto do que apenas fechar portas no roteador de borda.
Como detectar
Requisições GET para /public/template.cgi ou /cgi-bin/template.cgi contendo o parâmetro templatefile com caracteres de substituição de shell (como $( ) ou backticks) em logs de acesso do uhttpd são o indicador mais direto de tentativa de exploração. Como a via de ataque via /public/ não exige autenticação, qualquer acesso a esse caminho com parâmetros incomuns no query string merece investigação — em operação normal, esse endpoint não deveria receber tráfego externo à interface administrativa legítima.
Não há indicação nas fontes de assinatura de exploração pós-comprometimento (o que o atacante faz depois de obter root não foi documentado publicamente), então a defesa depende primariamente de detecção no próprio padrão de requisição HTTP e de monitorar dispositivos expostos via Shodan/Censys para a porta de administração do Meteobridge.