← back
CVE-2019-16920criticalunder attackCWE-78

CVE-2019-16920

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 weapon19 days
Published on NVDSep 27
1st PoC+19d
CISA KEV+910d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
3 public exploit(s)
Action required by CISAfederal deadline: 2022-04-15

The impacted product is end-of-life and should be disconnected if still in use.

Summary

Múltiplos roteadores D-Link legados expõem a página /apply_sec.cgi sem autenticação, permitindo injeção de comandos via o parâmetro ping_ipaddr da função PingTest, com execução como root. O CVSS 9.8 é justificado: não exige autenticação, não exige interação do usuário e o impacto é comprometimento total do dispositivo. O detalhe que a manchete não deixa claro é que todos os modelos afetados estão em fim de vida (EOL) e o fornecedor não vai corrigir — a única solução real é substituir o equipamento.

Technical detail

A falha (CWE-78, injeção de comando) está no CGI /apply_sec.cgi, que é despachado internamente pelo binário /www/cgi/ssi no firmware desses roteadores D-Link. Essa página aceita a ação ping_test, que recebe um parâmetro ping_ipaddr — presumivelmente para popular o comando ping usado no diagnóstico de rede do dispositivo. O código que monta o comando de sistema a partir desse parâmetro não trata corretamente caracteres de nova linha (newline).

O atacante controla integralmente o conteúdo de ping_ipaddr. Ao inserir um caractere de newline seguido de comandos arbitrários, tudo que vem depois da quebra de linha é executado no shell do dispositivo com privilégios de root — não há sanitização de entrada nem separação entre o valor esperado (um endereço IP) e comandos de shell.

O segundo problema, tão grave quanto o primeiro, é que /apply_sec.cgi está acessível sem qualquer autenticação. Isso elimina qualquer barreira: não é necessário ter credenciais de administrador do roteador, nem sessão válida, para atingir o endpoint vulnerável — basta acesso de rede à interface de gerência (LAN ou, em configurações expostas, WAN).

How it’s exploited

O vetor é uma requisição HTTP POST para /apply_sec.cgi com a ação ping_test e o parâmetro ping_ipaddr manipulado para incluir um newline seguido do comando desejado. Não há pré-requisito de autenticação, de configuração não padrão, nem de interação da vítima com nada além do envio da requisição — o CERT/CC observa inclusive que a exploração pode ocorrer 'como resultado de visualizar uma página web especialmente criada' (CSRF-like, via navegador de alguém na mesma rede que o roteador). A complexidade técnica é baixa: a única sofisticação está em montar corretamente o payload de injeção via newline, o que já está documentado publicamente e tem PoC e template Nuclei disponíveis.

O resultado final é execução de comando arbitrário como root no dispositivo — controle total do roteador, incluindo possibilidade de alterar DNS, interceptar tráfego, pivotar para a rede interna ou incorporar o dispositivo a uma botnet.

A CVE está no catálogo KEV da CISA desde 2022-03-25, confirmando exploração ativa em campo. Dado que os modelos afetados são amplamente distribuídos e sem suporte, é um alvo recorrente de botnets IoT.

Versions

Affected
Todos os firmwares conhecidos dos modelos: DIR-655 (referido também como DIR-655C na descrição original), DIR-866L, DIR-652, DHP-1565, DIR-855L, DAP-1533, DIR-862L, DIR-615, DIR-835 e DIR-825. Não há versionamento de firmware específico documentado pelo fornecedor ou pelo CERT/CC — a vulnerabilidade afeta o modelo como um todo, não uma faixa de builds.
Fixed in
Nenhuma. O CERT/CC afirma desconhecer solução prática e que os dispositivos não recebem mais suporte do fornecedor. A CISA KEV classifica os produtos como end-of-life e recomenda desconexão/substituição, não atualização.

How to protect

Não existe patch do fornecedor. O CERT/CC declarou explicitamente que não tem conhecimento de uma solução prática para o problema nos dispositivos listados, e a CISA, no KEV, orienta que o produto está em fim de vida e deve ser desconectado se ainda estiver em uso — a ação recomendada é substituição do equipamento, não atualização de firmware.

Como paliativo real até a substituição: bloquear acesso à interface de gerência HTTP do roteador a partir de qualquer rede não confiável (desabilitar administração remota/WAN, restringir a LAN local), e onde possível, segmentar o dispositivo em uma VLAN isolada sem acesso de outros hosts à interface web. Isso reduz a superfície mas não elimina o risco caso um host da própria LAN seja comprometido ou a vítima seja induzida a acessar uma página maliciosa via CSRF enquanto conectada à rede do roteador.

Não existe mitigação via firmware alternativo oficial nem flag de configuração documentada que desative especificamente o CGI vulnerável — trocar a senha de admin do roteador não mitiga, porque o endpoint é acessível sem autenticação.

How to detect

Em logs de servidor web do dispositivo (quando acessíveis) ou em captura de tráfego de rede, procurar por requisições HTTP POST para /apply_sec.cgi contendo o parâmetro action=ping_test com ping_ipaddr carregando caracteres de nova linha seguidos de comandos de shell — esse é o padrão de exploração documentado. O PoC do CERT/CC provoca perda de conectividade de rede por cerca de um minuto no dispositivo afetado, o que pode servir como indício indireto de teste/exploração em campo caso se observe indisponibilidade intermitente do roteador coincidindo com tráfego HTTP anômalo direcionado à interface de gerência.

Não há assinatura única confiável além do padrão de payload no parâmetro ping_ipaddr, já que o endpoint não gera logs de autenticação (não há autenticação) nem alertas nativos do dispositivo — a maior parte dos ambientes não terá visibilidade de logs desses roteadores de consumo/SMB.

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.
Unauthenticated remote code execution occurs in D-Link products such as DIR-655C, DIR-866L, DIR-652, and DHP-1565. The issue occurs when the attacker sends an arbitrary input to a "PingTest" device common gateway interface that could lead to common injection. An attacker who successfully triggers the command injection could achieve full system compromise. Later, it was independently found that these are also affected: DIR-855L, DAP-1533, DIR-862L, DIR-615, DIR-835, and DIR-825.
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.