CVE-2016-11021
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
The impacted product is end-of-life and should be disconnected if still in use.
Resumo
Injeção de comando OS no endpoint /setSystemCommand das câmeras IP D-Link DCS-930L, explorável remotamente por um usuário já autenticado no painel web do dispositivo. Está na lista KEV da CISA com exploração confirmada e módulo Metasploit público, mas o CVSS de 7.2 já reflete a exigência de privilégio alto (PR:H) — não é um RCE pré-autenticação, e sim um pivô a partir de uma sessão admin válida.
Detalhamento técnico
A falha (CWE-78, OS Command Injection) está no parâmetro SystemCommand do endpoint /setSystemCommand da interface web de administração do firmware. O dispositivo passa o valor recebido diretamente para um shell do sistema embarcado (BusyBox) sem sanitização, permitindo que o atacante anexe comandos arbitrários ao valor esperado.
O fluxo de requisição observado no módulo Metasploit público mostra um POST autenticado para /setSystemCommand com os campos ReplySuccessPage, ReplyErrorPage, SystemCommand e ConfigSystemCommand=Save. O campo SystemCommand é o vetor: qualquer string colocada ali é executada com os privilégios do processo web, que no firmware embarcado normalmente corresponde a root ou equivalente.
O atacante controla integralmente o conteúdo executado — não há lista de comandos permitidos nem escaping de metacaracteres de shell (;, |, `, $()). O único obstáculo real é a autenticação HTTP Basic exigida pelo endpoint, refletida no PR:H do vetor CVSS.
Como é explorada
Pré-requisito central: credenciais válidas no painel administrativo da câmera. O módulo Metasploit público (EDB-ID 39437) primeiro valida login via HTTP Basic Auth (usuário padrão 'admin', senha em branco por padrão em muitas unidades) contra a raiz do serviço web, e só então envia o POST malicioso para /setSystemCommand. Como muitos DCS-930L nunca tiveram a senha padrão alterada, a barreira de autenticação é, na prática, frequentemente trivial — apesar do CVSS classificar PR:H, o risco real depende de higiene de credenciais, não de complexidade técnica.
No PoC conhecido, o comando injetado inicia um 'telnetd' na porta alta aleatória com shell '/bin/sh' vinculado (telnetd -p -l/bin/sh), criando um backdoor de shell remoto que o atacante acessa diretamente via telnet, obtendo execução de comando arbitrária e persistente sobre o sistema embarcado do dispositivo. Divulgado publicamente em dezembro de 2015 por Nicholas Starke; a CISA confirma exploração ativa no mundo real, o que justificou a inclusão no catálogo KEV em 2022, apesar da divulgação ter ocorrido anos antes.
Versões
Como se proteger
O fornecedor corrigiu a injeção no firmware 2.12; dispositivos com versões anteriores a 2.12 (a fonte do módulo cita especificamente a versão 2.01 como testada) devem ser atualizados. No entanto, a linha DCS-930L está em fim de vida (EOL) segundo a própria nota da CISA no catálogo KEV, que recomenda desconectar o dispositivo da rede se ainda estiver em uso, em vez de depender de atualização de firmware que pode não estar mais disponível.
Controle compensatório real e imediato: trocar a senha padrão do usuário admin e restringir o acesso à interface de gerenciamento (porta HTTP do dispositivo) a uma rede de gerência isolada, sem exposição direta à internet ou a segmentos de usuário. Isso não elimina a vulnerabilidade, mas neutraliza o vetor de exploração observado, que depende de autenticação bem-sucedida.
Mudar apenas a senha não resolve o problema de fundo se o dispositivo continuar acessível remotamente e sem atualização — o vendor já não sustenta esse hardware, então qualquer outra falha de autenticação ou bypass futuro reabre o mesmo caminho de exploração. A única mitigação definitiva mencionada pela fonte oficial é a remoção do equipamento da rede.
Como detectar
Em logs do servidor web embarcado, procurar requisições POST para /setSystemCommand com o campo SystemCommand contendo metacaracteres de shell (;, |, `, $(), &&) ou strings como 'telnetd', '/bin/sh', 'busybox'. Em nível de rede, sinal característico da exploração conhecida é a abertura repentina de uma porta TCP alta (>32768) não documentada no dispositivo, correspondendo ao telnetd injetado pelo PoC público — tráfego telnet subsequente para essa porta a partir de um host externo é forte indício de comprometimento.
Não há assinatura confiável para detectar apenas a tentativa de login (que usa HTTP Basic Auth padrão), então o controle de detecção mais útil é monitorar anomalias de porta aberta e comandos suspeitos no campo SystemCommand, não tentativas de autenticação isoladas.