CVE-2018-14933
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
The impacted product is end-of-life (EoL) and/or end-of-service (EoS). Users should discontinue utilization of the product.
Resumo
Execução remota de comando não autenticada nos gravadores de vídeo em rede NUUO NVRmini, através do parâmetro uploaddir do endpoint upgrade_handle.php. O CVSS 9.8 é coerente com a falha real: não exige autenticação, não exige interação do usuário e, conforme demonstrado em PoC público, o comando injetado roda com privilégios de root no dispositivo. Está no catálogo KEV da CISA por exploração confirmada, tem módulo Metasploit e template Nuclei — mas o produto está em fim de vida, o que muda a estratégia de mitigação de 'atualizar' para 'substituir/isolar'.
Detalhamento técnico
O endpoint upgrade_handle.php aceita o parâmetro cmd (no caso vulnerável, com valor writeuploaddir) e o parâmetro uploaddir, cujo conteúdo é passado sem sanitização para uma chamada de shell no lado do servidor. Isso é uma injeção de comando de SO clássica (CWE-78): o atacante fecha o contexto de string esperado com uma aspas simples (') e encadeia um novo comando com ponto-e-vírgula (;), que o interpretador de shell executa como se fosse parte legítima da lógica do script.
O PoC público demonstra a exploração com uploaddir=';whoami;' e uploaddir=';id;'', e a resposta do servidor retorna uid=0(root), indicando que o processo PHP/web no NVR roda como root — logo, o comando injetado herda esses privilégios, sem necessidade de escalonamento adicional.
Nas evidências disponíveis (PoC do Exploit-DB e módulo Metasploit), a requisição é um GET simples ao endpoint, sem etapa de login demonstrada antes do envio do payload malicioso. Isso é consistente com o vetor CVSS AV:N/PR:N/UI:N informado: acesso via rede, sem privilégio prévio, sem interação do usuário.
Como é explorada
O vetor é uma requisição HTTP GET direta à interface web de administração do NVR (no PoC, porta 50000), enviando cmd=writeuploaddir e uploaddir com o payload de shell metacharacters. Não há indício, nas fontes analisadas, de necessidade de autenticação válida — nem o PoC do Exploit-DB nem o módulo Metasploit realizam login antes de disparar o comando. A complexidade de exploração é baixa: um único request HTTP é suficiente para obter execução de comando.
O próprio módulo Metasploit inclui uma rotina de check que injeta um echo com string aleatória e verifica se ela retorna na resposta junto ao valor upload_tmp_dir — um padrão trivial de automatizar em varreduras massivas. Isso, combinado com a existência de PoC público desde 2018, módulo Metasploit, e template Nuclei, explica por que a CISA confirmou exploração ativa no catálogo KEV (adicionada em dezembro de 2024, mais de seis anos após a divulgação), mesmo sem classificação como uso em campanhas de ransomware.
O resultado final da exploração é execução arbitrária de comando com privilégios de root no dispositivo, o que na prática significa controle total do NVR: acesso a gravações de vídeo, uso do dispositivo como pivô na rede interna, ou incorporação a botnets — este último um padrão histórico comum em CVEs de câmeras/NVRs expostas à internet.
Versões
Como se proteger
O fornecedor (NUUO) declarou as linhas NVRmini 2 e NVRsolo como fim de vida/fim de suporte (carta de EOL referenciada pela CISA), e não há, nas fontes consultadas, patch de firmware que corrija esta CVE especificamente. A própria CISA, ao incluir a falha no KEV, orienta a ação de 'descontinuar a utilização do produto' — ou seja, o caminho recomendado pelo órgão é substituição do equipamento, não atualização.
Se a substituição imediata não for viável, os controles compensatórios reais são de rede: remover qualquer exposição direta à internet da interface de gerenciamento do NVR, segmentar o dispositivo em VLAN isolada com acesso restrito por firewall, e, se a interface precisar permanecer acessível a operadores, colocar um proxy reverso ou WAF na frente bloqueando requisições ao path upgrade_handle.php com parâmetro cmd=writeuploaddir ou contendo metacaracteres de shell no valor de uploaddir. Nenhuma dessas medidas corrige a falha no código — apenas reduz a superfície de exposição.
Não funciona como mitigação confiar em autenticação da interface web como barreira: as evidências públicas (PoC e módulo Metasploit) não demonstram necessidade de sessão autenticada válida antes da injeção, então 'exigir login' não é garantia de proteção nesse caso.
Como detectar
Em logs de acesso web do NVR, procurar requisições GET a upgrade_handle.php com o parâmetro cmd=writeuploaddir e o parâmetro uploaddir contendo aspas simples, ponto-e-vírgula, pipe, crase ou $( — os metacaracteres típicos usados para escapar do contexto esperado do parâmetro. O padrão usado pelo módulo Metasploit (echo seguido de string alfanumérica aleatória, verificando o retorno de 'upload_tmp_dir' na resposta) é um indicador específico de tentativa de varredura/exploração automatizada.
A ausência desses padrões em logs não garante que o dispositivo não tenha sido comprometido: o PoC circula publicamente desde 2018, há variações de payload possíveis, e dispositivos NUUO expostos costumam ser alvo de scanners de internet massivos sem que o operador tenha logging habilitado ou retido por tempo suficiente para investigação retroativa.