CVE-2021-20123
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
Falha de path traversal (CWE-22) no endpoint DownloadFileServlet do VigorConnect, plataforma de gerenciamento centralizado de equipamentos DrayTek, que permite a um atacante não autenticado ler arquivos arbitrários do sistema operacional subjacente com privilégios de root. Está no catálogo KEV da CISA com exploração confirmada, apesar de a divulgação original ser de 2021 — a inclusão no KEV só ocorreu em setembro de 2024, indicando exploração ativa tardia ou renovada.
Detalhamento técnico
O DownloadFileServlet recebe parâmetros de requisição (show_file_name, type, path) que compõem o caminho de arquivo a ser servido ao cliente. O código não sanitiza sequências de diretório (../) no parâmetro show_file_name antes de montar o caminho absoluto que será lido do disco, permitindo que o atacante suba a partir do diretório de upload esperado até a raiz do sistema de arquivos e acesse qualquer arquivo legível pelo processo do servidor.
O processo VigorConnect roda com privilégios de root (ou equivalente), então a leitura não fica limitada a arquivos do webroot: qualquer arquivo do sistema legível por root é exposto, incluindo configurações, chaves e credenciais armazenadas em disco. A falha é puramente de confidencialidade (CVSS C:H, I:N, A:N) — não permite escrita nem execução por si só.
O endpoint não exige autenticação nem token de sessão, e a exploração é uma requisição GET simples, sem necessidade de interação do usuário ou condição de rede especial além de acesso à porta de gerência (tipicamente 4433/TCP via HTTPS). O mesmo binário/servlet concentra também vulnerabilidades relacionadas divulgadas junto (CVE-2021-20124 a 20129), incluindo upload arbitrário de arquivo (CVE-2021-20125, CVSS 9.8) que usa o mesmo padrão de traversal no parâmetro path do fluxo de upload — vale considerar o conjunto, não apenas esta CVE isolada, ao avaliar exposição.
Como é explorada
A exploração é direta: uma requisição HTTP(S) GET ao endpoint DownloadFileServlet com o parâmetro show_file_name contendo sequências ../ suficientes para alcançar a raiz do sistema, mais os parâmetros type=uploadfile e path=anything exigidos pela lógica do servlet. Não há autenticação, não há CSRF token necessário, e não há interação de usuário — o único pré-requisito real é acesso de rede à porta de gerência do VigorConnect (por padrão 4433/TCP), o que normalmente restringe a superfície a redes internas ou instâncias expostas incorretamente à internet.
O impacto prático depende do que o atacante consegue ler: arquivos de configuração com credenciais de dispositivos gerenciados, chaves privadas, ou arquivos do SO como /etc/passwd (Linux) ou win.ini (Windows) — usados como prova de conceito pelos pesquisadores para confirmar a falha antes de mirar em arquivos sensíveis específicos do ambiente. Como VigorConnect é usado para administrar centralmente roteadores/appliances DrayTek, o vazamento de credenciais aqui pode servir de trampolim para comprometer toda a base gerenciada.
Existe template Nuclei público para detecção/exploração automatizada e a CVE está no catálogo KEV da CISA (adicionada em 2024-09-03, prazo de correção 2024-09-24), confirmando exploração no mundo real — a CISA não especifica se há vínculo com ransomware (campo marcado como "Unknown").
Versões
Como se proteger
A ação recomendada pela CISA no KEV é aplicar as mitigações do fornecedor ou descontinuar o uso do produto caso não existam mitigações disponíveis — sinal de que o suporte/patch para esta linha pode ser limitado. O advisory oficial da DrayTek trata este CVE junto com CVE-2021-20124 a CVE-2021-20129 sob o mesmo aviso de segurança do VigorConnect; não há, nas fontes revisadas, confirmação da versão exata que corrige a falha — antes de considerar o ambiente protegido, é necessário validar diretamente no advisory do fornecedor qual build corrigiu o path traversal do DownloadFileServlet.
Como controle compensatório imediato, restrinja o acesso à porta de gerência do VigorConnect (tipicamente 4433/TCP) a redes de administração confiáveis via firewall/ACL — o serviço não deveria estar exposto à internet em nenhuma circunstância, dado que a exploração não exige autenticação. Monitorar e, se possível, colocar um proxy reverso ou WAF na frente do endpoint filtrando sequências de traversal (../, codificações %2e%2e) no parâmetro show_file_name reduz a superfície, mas não substitui a correção — filtros de WAF são contornáveis por variações de encoding.
Não funciona como mitigação apenas restringir a interface web de login, já que o endpoint vulnerável não passa por autenticação; a exposição de rede é o fator que precisa ser eliminado.
Como detectar
Requisições GET ao endpoint /ACSServer/DownloadFileServlet contendo sequências ../ repetidas no parâmetro show_file_name (ou variantes codificadas como %2e%2e%2f) nos logs de acesso HTTPS da porta de gerência (4433) são o indicador mais direto de tentativa de exploração. Presença dos parâmetros type=uploadfile e path=anything (ou valores genéricos/inesperados) na mesma requisição reforça o padrão típico do PoC público.
Como há template Nuclei público para esta CVE, scans automatizados de reconhecimento tendem a usar exatamente essa assinatura de URL, facilitando a detecção via regras simples de WAF/IDS; a ausência desse padrão nos logs não garante que não houve exploração por outros vetores relacionados (WebServlet, CVE-2021-20124), que merecem verificação conjunta.