← back
CVE-2016-11021highunder attackCWE-78

CVE-2016-11021

98Vexday Risk Score

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

ssvc Actcvss 7.2epss 69%
from disclosure to weapon0 days
Published on NVDMar 9
metasploitDec 20
CISA KEV+746d
exploitation probability
69%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 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

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
Firmware anterior à versão 2.12 (confirmado como vulnerável na versão 2.01 testada pelo pesquisador).
Fixed in
Firmware 2.12 e posteriores.

How to protect

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.

How to detect

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.

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.
setSystemCommand on D-Link DCS-930L devices before 2.12 allows a remote attacker to execute code via an OS command in the SystemCommand parameter.
CVSS:3.1/AV:N/AC:L/PR:H/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.