← voltar
CVE-2020-8515criticalsob ataqueCWE-78

CVE-2020-8515

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 100%
da publicação à arma58 dias
Publicada no NVD1 de fev.
1ª PoC+58d
CISA KEV+641d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
8 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumo

Falha de injeção de comandos OS (CWE-78) na interface web de administração dos roteadores/gateways DrayTek Vigor2960, Vigor3900 e Vigor300B, explorável sem autenticação via requisições ao endpoint cgi-bin/mainfunction.cgi. Um atacante remoto injeta metacaracteres de shell em parâmetro processado por esse CGI e executa comandos arbitrários como root no sistema operacional embarcado do equipamento. Está no catálogo KEV da CISA com exploração confirmada e é candidata natural a scanning em massa por expor gestão web diretamente na internet.

Detalhamento técnico

O componente vulnerável é o CGI cgi-bin/mainfunction.cgi, que centraliza várias funções administrativas da WebUI do firmware DrayTek nesses três modelos. O advisory do fornecedor não detalha o parâmetro exato nem a rotina interna comprometida — apenas confirma que o problema está na página de gerenciamento web ("Web Management Page Vulnerability"). A CISA classifica a falha como CWE-78 (OS Command Injection), consistente com a descrição pública: dados de entrada enviados a esse CGI são passados para uma chamada de shell no sistema sem sanitização adequada de metacaracteres (como ; | ` $() entre outros), permitindo que a entrada do atacante escape do contexto esperado e seja interpretada como comando pelo interpretador de shell subjacente.

O ponto crítico é que a exploração não exige autenticação prévia — a falha está exposta em rotas do CGI de gestão sem exigir sessão válida, o que a diferencia de boa parte das injeções de comando em CGIs administrativos que normalmente pedem login. Isso, combinado com o fato de esses equipamentos serem roteadores/gateways frequentemente expostos com a interface de administração acessível pela WAN, explica o vetor de ataque direto pela internet.

O processo do servidor web nesses appliances roda com privilégios de root, portanto qualquer comando injetado herda esse nível de acesso — não há camada de sandboxing ou drop de privilégios entre o CGI e o shell do sistema. Isso resulta em controle total do dispositivo: manipulação de configuração de rede, VPN, ACLs, criação de usuários administrativos e persistência.

Como é explorada

O vetor é uma requisição HTTP/HTTPS não autenticada para cgi-bin/mainfunction.cgi contendo metacaracteres de shell em um ou mais parâmetros processados por esse CGI. Não há pré-requisito de conta, sessão ou configuração não padrão além do essencial: a interface de gestão web precisa estar acessível ao atacante — o que, em roteadores DrayTek historicamente vendidos com administração remota habilitada por padrão em muitos ambientes SOHO/SMB, é comum. A complexidade de exploração é baixa (AC:L no vetor CVSS) e não exige interação do usuário.

O resultado final é execução de comando arbitrário como root no sistema operacional embarcado do dispositivo, o que na prática significa controle completo: alteração de configuração de VPN e regras de firewall/ACL, criação de contas administrativas ocultas, redirecionamento de tráfego, instalação de persistência e uso do equipamento como pivô para a rede interna ou como nó de botnet.

A CISA confirma exploração ativa (presença no catálogo KEV desde novembro de 2021) e existem PoC pública e template Nuclei documentados, o que reduz a barreira técnica para exploração em massa via scanning de internet. O próprio advisório da DrayTek registra que a empresa tomou conhecimento de uma possível exploração real em 30 de janeiro de 2020, antes mesmo da correção estar disponível.

Versões

Afetadas
Vigor2960 1.3.1_Beta; Vigor3900 1.4.4_Beta; Vigor300B 1.3.3_Beta, 1.4.2.1_Beta e 1.4.4_Beta.
Corrigidas em
Vigor3900, Vigor2960 e Vigor300B: firmware 1.5.1 ou posterior (correção unificada para os três modelos).

Como se proteger

A correção definitiva é atualizar o firmware para a versão 1.5.1 ou posterior nos três modelos afetados (Vigor300B, Vigor2960, Vigor3900) — não há versões de correção diferenciadas por ramo, o fornecedor unificou a versão fixa em 1.5.1 para todos.

Se a atualização não puder ser aplicada imediatamente, o próprio fornecedor recomenda paliativos: desabilitar o acesso remoto de administração (WebUI/admin) se não for estritamente necessário; se for necessário, restringir por ACL (lista de IPs permitidos) — mas atenção, o fornecedor alerta que a ACL não se aplica a conexões SSL VPN na porta 443, então SSL VPN remoto também deve ser desabilitado temporariamente até a atualização. Habilitar logging via syslog para monitorar eventos anormais é recomendado como controle compensatório de detecção, não de prevenção.

Depois de aplicar a correção, o fornecedor recomenda validar que nenhum usuário administrativo ou perfil de acesso remoto (VPN dial-in, teleworker, LAN-to-LAN) foi adicionado indevidamente durante o período de exposição, e que nenhuma ACL foi alterada por um possível atacante — sinal de que a compromissão pode deixar rastros de persistência que sobrevivem à simples atualização de firmware. Restringir exposição da interface de gestão à WAN por si só reduz drasticamente a superfície, mas não corrige a vulnerabilidade subjacente enquanto o firmware não for atualizado.

Como detectar

Procurar em logs de acesso web (se syslog remoto estiver habilitado no dispositivo — não é padrão) requisições para cgi-bin/mainfunction.cgi contendo metacaracteres de shell (;, |, `, $(), &&, etc.) em parâmetros de query ou corpo da requisição, especialmente originadas de IPs externos sem sessão administrativa válida associada. Como o CGI é usado normalmente por várias funções legítimas da WebUI, o sinal relevante é a presença de sintaxe de shell nos valores dos parâmetros, não o acesso ao endpoint em si.

Não há garantia de rastro confiável: muitos desses equipamentos não mantêm log persistente por padrão e o próprio fornecedor recomenda habilitar syslog apenas como medida reativa pós-incidente. Na ausência de logging habilitado antes do ataque, a detecção fica limitada a indicadores indiretos no próprio dispositivo — usuários administrativos desconhecidos, ACLs alteradas ou perfis de VPN/acesso remoto criados sem registro, conforme apontado no advisório do fornecedor.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
DrayTek Vigor2960 1.3.1_Beta, Vigor3900 1.4.4_Beta, and Vigor300B 1.3.3_Beta, 1.4.2.1_Beta, and 1.4.4_Beta devices allow remote code execution as root (without authentication) via shell metacharacters to the cgi-bin/mainfunction.cgi URI. This issue has been fixed in Vigor3900/2960/300B v1.5.1.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.