← back
CVE-2018-14558criticalunder attackCWE-78

CVE-2018-14558

58Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA.

ssvc Actcvss 9.8epss 8.7%
from disclosure to weapon
Published on NVDOct 30
CISA KEV+1100d
exploitation probability
8.7%top 5% of all CVEs
observed exploitation
yesCISA + VulnCheck
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

Falha de command injection (CWE-78) nos roteadores Tenda AC7, AC9 e AC10 que permite execução arbitrária de comandos do sistema operacional através de uma requisição manipulada ao endpoint goform/setUsbUnload, sem necessidade de autenticação prévia segundo o vetor CVSS publicado. Está no catálogo KEV da CISA com exploração confirmada, o que a torna prioridade real de correção mesmo em ambientes que normalmente ignorariam CVEs de roteador doméstico — típico alvo de botnets IoT que varrem a internet em busca de dispositivos expostos.

Technical detail

A função formsetUsbUnload, parte do binário httpd/goform que implementa a interface de administração web do firmware Tenda, repassa um parâmetro de entrada — relacionado ao dispositivo USB a ser desmontado — diretamente para uma função interna chamada dosystemCmd sem sanitização. dosystemCmd, pelo nome e comportamento descrito, monta e executa uma string de comando de shell (tipicamente via system() ou equivalente) usando esse parâmetro como parte do comando.

Como não há validação de caracteres especiais de shell (;, |, &, `, $()), um atacante que controle o valor desse parâmetro consegue encadear comandos arbitrários que serão executados com os privilégios do processo httpd — em firmwares embarcados desse tipo, normalmente root. Isso caracteriza injeção de comando clássica (CWE-78) em um endpoint de gerência de dispositivo USB conectado ao roteador (uma feature de compartilhamento de armazenamento via USB, comum nesses modelos).

O vetor CVSS 3.1 publicado (AV:N/AC:L/PR:N/UI:N) indica que o fornecedor/analista considerou o endpoint acessível pela rede sem exigir privilégios nem interação do usuário — compatível com falhas de goform CGI que não impõem checagem de sessão consistente em vários firmwares Tenda dessa geração, um padrão documentado em outras CVEs da mesma família de dispositivos.

How it’s exploited

O ataque consiste em enviar uma requisição HTTP (GET ou POST, conforme o comportamento típico dos endpoints goform da Tenda) para goform/setUsbUnload contendo, no parâmetro relacionado ao path ou nome do dispositivo USB, uma sequência que escapa do contexto esperado e injeta um comando de shell adicional. O pré-requisito prático é acesso de rede à interface HTTP de administração do roteador — por padrão isso significa estar na LAN, mas dispositivos com gerenciamento remoto habilitado ou expostos diretamente à internet (configuração incorreta, port forwarding, ou modems/roteadores que operam a interface WAN por padrão) ficam acessíveis a qualquer atacante na internet, o que explica a presença no catálogo KEV.

Versions

Affected
Tenda AC7 com firmware até V15.03.06.44_CN(AC7); Tenda AC9 com firmware até V15.03.05.19(6318)_CN(AC9); Tenda AC10 com firmware até V15.03.06.23_CN(AC10).

How to protect

As fontes disponíveis não trazem número de versão de firmware corrigida publicada pelo fornecedor; a própria entrada da CISA no KEV apenas orienta 'aplicar atualizações conforme instruções do fornecedor', sem apontar release específico. Não é possível, com os dados apurados, afirmar qual versão resolve a falha — qualquer versão citada seria especulação, e a regra aqui é não inventar.

Como controle compensatório real: desabilitar o gerenciamento remoto/WAN da interface administrativa do roteador, restringir o acesso ao painel apenas à rede local confiável, e desabilitar a funcionalidade de compartilhamento USB (setUsbUnload é parte dela) se não for usada. Verificar diretamente no site do fabricante ou no firmware instalado se há build mais recente para o modelo/hardware version específico — Tenda publica firmwares por revisão de hardware, e a versão correta depende da revisão exata do AC7/AC9/AC10 em uso.

Não funciona como mitigação: apenas alterar a senha do painel administrativo, já que o CVSS indica PR:N (sem exigência de privilégio) — se o endpoint realmente não exige autenticação, trocar credenciais não bloqueia o vetor.

How to detect

Procurar em logs de proxy, firewall ou IDS perimetral por requisições HTTP direcionadas a goform/setUsbUnload, especialmente as que contêm caracteres típicos de injeção de shell (;, |, &, `, $(), espaços seguidos de binários como wget, busybox, sh) no corpo ou nos parâmetros da requisição. Tráfego originado da internet (fora da faixa de IP da LAN do roteador) endereçado a esse caminho é sinal forte de tentativa de exploração, dado que o endpoint deveria ser acessado apenas internamente.

O firmware Tenda tipicamente não gera log de acesso HTTP detalhado por padrão, o que limita a detecção no próprio dispositivo — a visibilidade prática depende de captura de tráfego de rede ou de logs em equipamentos de borda posicionados antes do roteador. Na ausência desses controles, não há sinal confiável disponível no próprio dispositivo comprometido.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
An issue was discovered on Tenda AC7 devices with firmware through V15.03.06.44_CN(AC7), AC9 devices with firmware through V15.03.05.19(6318)_CN(AC9), and AC10 devices with firmware through V15.03.06.23_CN(AC10). A command Injection vulnerability allows attackers to execute arbitrary OS commands via a crafted goform/setUsbUnload request. This occurs because the "formsetUsbUnload" function executes a dosystemCmd function with untrusted input.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · n/a