CVE-2020-10987
Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.
Apply updates per vendor instructions.
Resumen
Falha de injeção de comandos no endpoint goform/setUsbUnload do firmware do roteador Tenda AC15 AC1900, versão 15.03.05.19, que permite a um atacante remoto executar comandos arbitrários no sistema operacional do dispositivo através do parâmetro deviceName enviado via POST. Está no catálogo KEV da CISA como exploração confirmada em ambiente real, o que junto ao CVSS 9.8 e ao EPSS próximo de 0.80 indica risco prático alto para qualquer unidade exposta à internet ou alcançável na rede local.
Detalle técnico
A vulnerabilidade é uma injeção de comando de sistema operacional (CWE-78) no endpoint /goform/setUsbUnload, parte da interface de gerenciamento web do roteador que trata a desmontagem (unmount) de dispositivos de armazenamento USB conectados à porta USB do AC15. O firmware recebe o parâmetro deviceName via requisição POST e o concatena, sem sanitização adequada, em uma chamada de shell no lado do dispositivo — padrão comum em firmwares embarcados baseados em busybox/uClibc, onde funções goform chamam binários do sistema passando strings de entrada do usuário diretamente.
O atacante controla o conteúdo do campo deviceName, que deveria representar apenas o identificador de um dispositivo de armazenamento montado (ex: sda1). Ao inserir metacaracteres de shell nesse campo, é possível encadear comandos adicionais que são executados com os privilégios do processo do servidor web embarcado — normalmente root em roteadores desse porte, dado que esses firmwares raramente implementam separação de privilégios entre o daemon HTTP administrativo e o restante do sistema.
O detalhe técnico exato do sink (qual binário é invocado, se há alguma filtragem parcial de caracteres) não está descrito na advisory oficial nem nas fontes disponíveis para esta página; a descrição do fornecedor/CVE se limita a apontar o parâmetro vulnerável e o endpoint.
Cómo se explota
O vetor é uma requisição HTTP POST para /goform/setUsbUnload na interface de administração web do roteador, com o payload de injeção colocado no campo deviceName. A CVE original e a entrada no catálogo KEV da CISA não indicam explicitamente a necessidade de autenticação prévia; a forma como a falha foi catalogada (CVSS 3.1 com PR:N — sem privilégios necessários) aponta para exploração sem credenciais, desde que o atacante tenha acesso de rede à porta de administração do dispositivo. Isso é coerente com o padrão de outras vulnerabilidades do mesmo lote de pesquisa em roteadores Tenda AC15/AC1900 divulgadas no mesmo período.
A exploração não exige interação do usuário (UI:N) e tem complexidade de ataque baixa (AC:L): basta montar a requisição HTTP com o parâmetro malicioso. Não há elevação de privilégios necessária além do acesso à interface, e o impacto é total sobre confidencialidade, integridade e disponibilidade (C:H/I:H/A:H), pois o comando roda com privilégios elevados no sistema embarcado.
O resultado final de uma exploração bem-sucedida é execução arbitrária de comandos no roteador, o que na prática significa controle completo do dispositivo — captura e redirecionamento de tráfego, pivô para a rede interna, instalação de implantes persistentes (comum em botnets IoT) ou simples sabotagem do link de internet da vítima. A presença no catálogo KEV confirma exploração ativa observada pela CISA, e a existência de template Nuclei e PoC pública amplia a superfície de quem consegue reproduzir o ataque sem conhecimento profundo de engenharia reversa de firmware.
Versiones
Cómo protegerse
As fontes consultadas para esta página não trazem uma versão de firmware específica publicada pela Tenda que corrija esta CVE. A recomendação do catálogo KEV da CISA é genérica — 'aplicar atualizações conforme instruções do fornecedor' — sem apontar número de build. Antes de declarar o dispositivo corrigido, é necessário verificar diretamente no site de suporte da Tenda para o modelo AC15 AC1900 se existe firmware posterior a 15.03.05.19 que trate especificamente esse endpoint; não assuma que qualquer atualização genérica resolve sem confirmar a changelog.
Como paliativo, o controle mais efetivo é impedir que a interface de administração web do roteador seja alcançável pela internet (desabilitar gerenciamento remoto/WAN) e restringir o acesso à LAN administrativa apenas a hosts confiáveis. Desabilitar o compartilhamento USB e a funcionalidade associada ao goform/setUsbUnload, quando não utilizada, reduz a superfície de ataque, mas não é uma correção — apenas remove um caminho de exploração enquanto outros endpoints goform do mesmo firmware podem ter falhas semelhantes.
Não funciona como mitigação: trocar apenas a senha de administração, já que a falha não depende necessariamente de autenticação bem-sucedida (PR:N no vetor CVSS), nem confiar em NAT como barreira — dispositivos com UPnP ativo ou regras de port-forwarding podem expor a interface sem que o usuário perceba.
Cómo detectar
Em logs do servidor web embarcado do roteador (quando acessíveis) ou em captura de tráfego de rede, procurar requisições POST para o caminho /goform/setUsbUnload contendo, no corpo, o parâmetro deviceName com caracteres típicos de injeção de shell — ponto e vírgula, pipe, crase, cifrão com parênteses, '&&' ou '||' — em vez de um nome de dispositivo de armazenamento legítimo (ex: sda1, sdb1). A existência de template Nuclei público para esta CVE também serve como base de assinatura para verificação ativa via scanner.
Não há indicador de comprometimento pós-exploração padronizado publicamente para esse firmware específico; a ausência de log de auditoria detalhado na maioria dos roteadores domésticos Tenda limita a capacidade forense — se o dispositivo não expõe log persistente do servidor HTTP administrativo, a única evidência prática é o tráfego de rede capturado no momento do ataque.