← back
CVE-2019-17621criticalunder attackCWE-78

CVE-2019-17621

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 90%
from disclosure to weapon933 days
Published on NVDDec 30
1st PoC+933d
metasploitDec 24
CISA KEV+1277d
exploitation probability
90%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
3 public exploit(s)
Action required by CISAfederal deadline: 2023-07-20

Apply updates per vendor instructions or discontinue use of the product if updates are unavailable.

Summary

Falha de injeção de comando no endpoint UPnP /gena.cgi do roteador D-Link DIR-859 (firmware 1.05 e 1.06B01 Beta01), que permite a um atacante não autenticado executar comandos arbitrários como root a partir de uma requisição HTTP SUBSCRIBE manipulada. O CVSS de 9.8 reflete o impacto total (RCE root, sem autenticação), mas o próprio fornecedor destaca que a exploração exige acesso à rede local (LAN-side) — não é uma falha exposta diretamente à internet por padrão.

Technical detail

O serviço UPnP do DIR-859 implementa GENA (General Event Notification Architecture) através do CGI /gena.cgi, responsável por processar assinaturas de eventos UPnP via método HTTP SUBSCRIBE. A falha é uma injeção de comando de sistema operacional (CWE-78): dados de um campo da requisição SUBSCRIBE — controlado pelo atacante — são passados sem sanitização adequada para uma chamada de sistema no binário/script que trata a assinatura, permitindo a concatenação de comandos shell arbitrários.

Como o serviço UPnP nesses roteadores roda com privilégios de root (comum em firmware embarcado baseado em Linux), qualquer comando injetado é executado com privilégio máximo no dispositivo, comprometendo integralmente o roteador.

A vulnerabilidade foi descoberta e reportada por Miguel Mendez Z. (s1kr10s) e Pablo Pollanco (secenv), do centro de pesquisa da Telefónica Chile, que também identificaram falhas correlatas no mesmo firmware: CVE-2019-20213 (divulgação de informação) e CVE-2019-20215/20216/20217 (RCE via interpretador ssdpcgi() do MSEARCH UPnP), estas últimas afetando também outros modelos D-Link (DIR-818Lx, DIR-822, DIR-823, DIR-865L, DIR-868L, DIR-869, DIR-880L, DIR-885L, DIR-890L, DIR-895L).

How it’s exploited

O vetor é uma requisição HTTP SUBSCRIBE especialmente construída, enviada ao serviço UPnP do dispositivo (endpoint /gena.cgi). Não há autenticação envolvida — o serviço UPnP por design atende requisições sem credenciais dentro da rede local. O pré-requisito real, e o ponto mais importante da página, é que o atacante precisa estar na LAN do roteador (ou alcançar a interface onde o UPnP escuta): isso pode ocorrer por acesso físico à rede Wi-Fi/cabeada, comprometimento prévio de outro dispositivo na mesma rede, um convidado malicioso, ou técnicas como DNS rebinding via navegador de uma vítima na LAN acessando o IP interno do roteador. Isso não é, por padrão, uma falha explorável diretamente pela internet.

A complexidade técnica de exploração é baixa: existem PoC pública (Packetstorm, writeups do s1kr10s no Medium) e módulo Metasploit disponível, o que reduz a exploração a um processo automatizável para quem já tenha o pré-requisito de acesso à rede local. O resultado final é execução de comando como root, ou seja, controle total do roteador — possibilitando pivotagem para outros hosts da LAN, interceptação de tráfego, alteração de DNS/configuração, ou persistência via firmware malicioso.

A CVE está no catálogo KEV da CISA (adicionada em 29/06/2023, prazo de correção 20/07/2023), confirmando exploração ativa observada, embora não haja indicação de uso em campanhas de ransomware conhecidas.

Versions

Affected
D-Link DIR-859 Rev. Ax — firmware v1.05 e v1.06B01 Beta01 e versões anteriores.
Fixed in
v1.07b03_beta, aplicado em duas etapas obrigatórias: DIR859_FW107b02beta01_20190125_j1o9_middle.bin seguido de DIR859_FW107b03_jbli_beta.bin.

How to protect

O fornecedor publicou correção via atualização de firmware, mas o processo exige duas etapas sequenciais no DIR-859 Rev. Ax: primeiro aplicar DIR859_FW107b02beta01_20190125_j1o9_middle.bin, depois DIR859_FW107b03_jbli_beta.bin, chegando à versão final v1.07b03_beta. Aplicar apenas uma das duas atualizações não fecha completamente a vulnerabilidade.

Se a atualização não for viável — o DIR-859 já está listado como produto legacy/EOL nos boletins da D-Link, e as correções vieram como firmware beta pós-EOL —, o paliativo real é desabilitar o serviço UPnP no dispositivo, o que elimina a superfície vulnerável mas também remove funcionalidades que dependem de UPnP (encaminhamento automático de porta para jogos, VoIP, etc.). Segmentar a rede de forma que dispositivos não confiáveis (IoT, convidados) não compartilhem a mesma LAN do roteador administrativo reduz a exposição, mas não elimina o risco de um host já comprometido na mesma rede.

O que não funciona: expor ou não expor a interface WAN é irrelevante para essa CVE específica, já que a falha é LAN-side por natureza — a mitigação de 'não expor UPnP à internet' (boa prática geral) não resolve este vetor, que já assume atacante interno à rede.

How to detect

Não há indicação de logging confiável nesse roteador para requisições HTTP SUBSCRIBE anômalas dirigidas a /gena.cgi — dispositivos consumer como o DIR-859 tipicamente não mantêm logs de acesso ao serviço UPnP acessíveis ao usuário. Em ambientes onde é possível capturar tráfego LAN (span port, IDS interno), o indicador é uma requisição HTTP com método SUBSCRIBE direcionada à porta do serviço UPnP do dispositivo, contendo caracteres de injeção de shell (como `;`, `|`, `` ` ``, `$()`) em campos de cabeçalho, especialmente no campo Callback típico de assinaturas GENA.

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.
The UPnP endpoint URL /gena.cgi in the D-Link DIR-859 Wi-Fi router 1.05 and 1.06B01 Beta01 allows an Unauthenticated remote attacker to execute system commands as root, by sending a specially crafted HTTP SUBSCRIBE request to the UPnP service when connecting to the local network.
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.