CVE-2010-5330
Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.
Apply updates per vendor instructions.
Resumen
Injeção de comando via GET no CGI stainfo.cgi ("Show AP info") de dispositivos Ubiquiti com firmware AirOS antigo — o parâmetro ifname é concatenado sem sanitização em um comando de shell no lado do dispositivo. A CVE foi cadastrada só em 2019 mas a falha e o exploit público datam de 2010; está no catálogo KEV da CISA por exploração confirmada em campo, apesar de o firmware corrigido existir há mais de uma década.
Detalle técnico
A falha é um CWE-77 (Command Injection) clássico: o script stainfo.cgi, acionado pela função "Show AP info" na seção "Extra Informations" do painel web do AirOS, recebe o parâmetro ifname via GET e o insere diretamente numa chamada de sistema no dispositivo (provavelmente para consultar informações da interface de rede, tipo iwconfig/ifconfig). Não há validação de whitelist de nomes de interface nem escaping de metacaracteres de shell.
O atacante controla o valor de ifname e pode anexar metacaracteres (`;`, `|`, `&&` etc.) para encadear comandos arbitrários que são executados com os privilégios do processo web do dispositivo — normalmente root em appliances embarcados desse tipo. O PoC público (exploit-db 14146) demonstra a técnica usando `ifname=eth0;cat%20/tmp/system.cfg|grep%20users` para ler o arquivo de configuração /tmp/system.cfg, que contém usuários e chave de wireless em texto claro — ou seja, a exploração pode ir de leitura de credenciais até execução completa de comando.
O relato original do autor da PoC (emgent, disclosure responsável em 2010) descreve que o acesso foi obtido "com conta não privilegiada, tipo read-only" — ou seja, o cenário demonstrado exige autenticação no painel web, mesmo que com um perfil de baixo privilégio. Isso é relevante porque o vetor CVSS 3.1 publicado (PR:N — sem privilégio necessário) não reflete essa pré-condição documentada na fonte primária do exploit; pode haver variação entre modelos/firmwares quanto à exigência de login para acessar o CGI.
Cómo se explota
O vetor é uma requisição HTTP GET simples para stainfo.cgi com o parâmetro ifname manipulado, disparada contra a interface de gerência web do dispositivo (porta HTTP/HTTPS de administração do AirOS). Não há necessidade de interação do usuário nem de condições de rede complexas — só alcance de rede até a interface administrativa, que em muitos deployments de ISP/WISP fica exposta na WAN ou em segmentos de gestão mal isolados.
A pré-condição real, segundo a PoC original, é possuir uma conta válida no painel — mesmo que de leitura — antes de disparar o comando via o CGI vulnerável. Em ambientes onde a conta padrão/fraca (credenciais default, sem troca) está em uso, isso reduz a barreira a quase zero, o que explica por que a falha continua sendo explorada ativamente mais de dez anos depois e motivou a inclusão no catálogo KEV da CISA (adicionada em 2022, com exigência de correção em 15/05/2022 para agências federais dos EUA).
O resultado final é execução de comando arbitrário no contexto do processo de administração web do dispositivo, tipicamente com privilégios elevados no sistema embarcado — suficiente para exfiltrar credenciais (como a chave wireless armazenada em /tmp/system.cfg), pivotar na rede interna atrás do equipamento, ou reconfigurar/derrubar o link de rádio.
Versiones
Cómo protegerse
O fornecedor publicou firmware corrigido por linha de produto: v4.0.1 para produtos ISP baseados em 802.11, v5.3.5 para linha AirMax ISP, e v5.4.5 para firmware AirSync. Atualizar para essas versões (ou posteriores da mesma linha) remove a injeção no stainfo.cgi. Como a vulnerabilidade tem mais de dez anos, qualquer dispositivo AirOS ainda rodando abaixo dessas versões deve ser tratado como comprometível e priorizado para atualização imediata.
Se a atualização não for viável de imediato, restrinja o acesso à interface de administração web (HTTP/HTTPS) exclusivamente a redes de gerência confiáveis — nunca exposta à WAN/Internet — e desative contas de acesso não essenciais, já que a exploração documentada partiu de uma conta autenticada de baixo privilégio. Essas medidas reduzem a superfície mas não corrigem a falha de sanitização; não substituem a atualização de firmware.
Troca de senha padrão isoladamente não mitiga o risco, pois qualquer conta válida — inclusive de perfil restrito — basta para acionar o CGI vulnerável segundo a PoC original; o controle compensatório real é isolamento de rede da interface de gestão combinado com a atualização de firmware assim que possível.
Cómo detectar
Procure em logs de acesso web do dispositivo (ou de proxy/WAF na frente dele) requisições GET para /stainfo.cgi cujo parâmetro ifname contenha metacaracteres de shell — ponto e vírgula, pipe, `&&`, backticks ou `$()` — em vez de um nome de interface legítimo (eth0, ath0, wlan0 etc.). A presença de comandos como `cat`, `grep`, `wget`, `nc` ou caminhos como /tmp/system.cfg dentro da query string é um indicador forte de tentativa de exploração, já que reproduz o padrão do PoC público.
Não há assinatura oficial publicada pelo fornecedor ou por CERTs para essa CVE especificamente; a detecção depende de inspeção manual ou de regras próprias de IDS/WAF voltadas a padrões de command injection em parâmetros de CGI, e da revisão de logs históricos já que a falha e o exploit circulam publicamente desde 2010.