PTZOptics NDI and SDI Cameras Command Injection via NTP Address Configuration
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
Câmeras PTZ da PTZOptics (linha PT30X-SDI/NDI, e também equipamentos white-label baseados no mesmo firmware ValueHD/VHD usados por Multicam Systems SAS e SMTAV Corporation) executam comandos arbitrários no sistema operacional quando o campo de endereço NTP (ntp_addr) é processado pelo cliente NTP. Isoladamente a falha exige autenticação administrativa (PR:H no CVSS), mas encadeada com CVE-2024-8956 — uma falha de autenticação insuficiente na mesma família de dispositivos — um atacante remoto e não autenticado consegue disparar a injeção. Importa porque essas câmeras rodam em salas de cirurgia, tribunais, plantas industriais e cultos religiosos, com interface web exposta e, em muitos casos, acessível pela internet.
Detalhamento técnico
A falha é uma OS Command Injection clássica (CWE-78) no endpoint CGI /cgi-bin/param.cgi, especificamente no parâmetro ntp_addr. O firmware grava o valor recebido na configuração do cliente NTP sem sanitização adequada de metacaracteres de shell. Quando o serviço ntp_client é iniciado (na inicialização do sistema, em reconfiguração de rede, ou por acionamento manual via API), o firmware provavelmente monta uma linha de comando de sistema (system()/popen() ou script shell) concatenando o valor de ntp_addr, permitindo que caracteres como ';', '|', '`' ou '$()' encerrem o comando esperado e injetem instruções arbitrárias.
Como é explorada
O vetor primário é uma requisição autenticada ao CGI /cgi-bin/param.cgi definindo ntp_addr com payload malicioso, seguida do disparo do cliente NTP para acionar a execução — daí o PR:H no vetor CVSS oficial. O que torna a falha crítica na prática é o encadeamento com CVE-2024-8956: essa segunda falha expõe credenciais (hashes MD5) e dados de configuração sem autenticação adequada, permitindo que um atacante sem nenhuma credencial prévia obtenha acesso administrativo e então injete o comando via ntp_addr — resultando em execução remota não autenticada como root, conforme reportado pelo fornecedor e pela GreyNoise. A GreyNoise identificou essa cadeia porque um honeypot de sua rede global capturou uma tentativa de exploração automatizada de dia zero antes da divulgação pública — ou seja, houve exploração ativa na internet mesmo antes do CVE ser publicado, o que justifica a inclusão no catálogo KEV da CISA. O resultado final documentado inclui controle total da câmera, manipulação/visualização do feed de vídeo, extração de dados de rede (IP, MAC, gateway) para pivotar lateralmente, e potencial recrutamento do dispositivo em botnet.
Versões
Como se proteger
Atualizar para o firmware 6.3.40 ou posterior, disponível no changelog oficial da PTZOptics. Se a atualização não for viável, o paliativo real é isolar a interface de gestão do dispositivo (porta web/CGI) da internet e de redes não confiáveis, restringindo acesso a uma VLAN de gerência com controle de acesso — isso neutraliza tanto o requisito de autenticação quanto a exposição não autenticada via CVE-2024-8956. Trocar senhas padrão e desabilitar acesso remoto ao painel administrativo reduz mas não elimina a superfície, já que a falha de autenticação encadeada pode contornar credenciais fracas. Não existe mitigação de configuração dentro do próprio firmware vulnerável que neutralize a injeção em ntp_addr — a sanitização é ausente e só é corrigida na atualização; restringir rede é a única defesa compensatória eficaz enquanto o patch não é aplicado.
Como detectar
Monitorar requisições ao endpoint /cgi-bin/param.cgi contendo o parâmetro ntp_addr com metacaracteres de shell (';', '|', '`', '$()', '&&', '\n') é o sinal mais direto de tentativa de exploração. Como a cadeia de ataque costuma passar antes por uma chamada não autenticada relacionada a CVE-2024-8956 para extrair credenciais/configuração, requisições anômalas a rotas de configuração sem sessão autenticada válida, seguidas de escrita em param.cgi e reinício do cliente NTP, formam o padrão completo do ataque. Não há assinatura pública de PoC detalhada nas fontes consultadas além do que foi reportado pela GreyNoise via honeypot; ambientes sem logging de acesso ao CGI provavelmente não terão visibilidade confiável desses eventos.