← back
CVE-2020-8515criticalunder attackCWE-78

CVE-2020-8515

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.8epss 100%
from disclosure to weapon58 days
Published on NVDFeb 1
1st PoC+58d
CISA KEV+641d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
8 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
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.
Fixed in
Vigor3900, Vigor2960 e Vigor300B: firmware 1.5.1 ou posterior (correção unificada para os três modelos).

How to protect

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.

How to detect

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.

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.
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
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.