CVE-2020-5735
Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.
Apply updates per vendor instructions.
Resumen
Falha de estouro de buffer baseado em pilha (CWE-121) na interface proprietária de administração que câmeras IP e NVRs Amcrest expõem na porta TCP 37777 — a mesma interface usada em dispositivos baseados na plataforma Dahua. Um atacante que consiga autenticar-se nessa porta pode travar o dispositivo e, segundo a Tenable, possivelmente executar código arbitrário. O risco real depende de exposição da porta 37777 à rede e de credenciais válidas, mas a CISA lista a falha no catálogo KEV por exploração confirmada e por brute force não ter limite de tentativas nessa interface.
Detalle técnico
O bug está na lógica de teste de DDNS do firmware, acionada pelo comando 0x62 com subcomando 0x04 sobre o protocolo binário proprietário da porta 37777. Ao processar essa mensagem, o firmware copia o campo 'Protocol' fornecido pelo cliente para um buffer de tamanho fixo na pilha usando memcpy() sem validar o tamanho de entrada — um caso clássico de stack buffer overflow (CWE-121). Um valor grande nesse campo escreve além dos limites do buffer, corrompendo a pilha.
O atacante controla o conteúdo e o tamanho do campo Protocol da requisição DDNS, o que dá controle sobre o que é escrito na pilha corrompida. A Tenable, que descobriu e reportou a falha (pesquisador Jacob Baines, advisory TRA-2020-20), confirmou o crash com um PoC público e afirma acreditar ser viável execução de código arbitrário, mas não publicou um exploit de RCE funcional — apenas o PoC de negação de serviço.
A mesma interface na porta 37777 concentra todas as capacidades administrativas e de streaming de vídeo/áudio equivalentes à interface HTTP, mas, diferente do HTTP (limitado a 10–30 tentativas de login conforme o modelo), não tem nenhum limite de tentativas de autenticação. A única barreira para brute force nessa porta é um algoritmo de login proprietário, que a própria Tenable reproduziu em seu PoC — ou seja, não é uma proteção robusta contra automação.
Há uma divergência relevante entre fontes: a descrição oficial do fornecedor e a Tenable classificam a falha como explorável apenas por atacante autenticado (refletido no vetor CVSS com PR:L). Já o registro da CISA no KEV descreve o vetor como 'unauthenticated, remote attacker'. Como não há indicação de bypass de autenticação documentado publicamente, e a descrição oficial e a fonte técnica primária (Tenable) concordam em exigir autenticação, trate a divergência da CISA como imprecisão editorial, não como confirmação de exploração sem credenciais.
Cómo se explota
O vetor é rede: o atacante precisa alcançar a porta TCP 37777 do dispositivo e possuir (ou obter) credenciais válidas de autenticação na interface proprietária. Uma vez autenticado, envia uma mensagem com comando 0x62/subcomando 0x04 contendo um campo Protocol maior que o esperado pela lógica de teste de DDNS, disparando o overflow. Não há interação do usuário do dispositivo necessária (UI:N) e a complexidade de ataque é baixa (AC:L) uma vez satisfeita a pré-condição de autenticação.
O ponto crítico de risco prático não é a sofisticação do exploit, mas a exposição: a Tenable observou via Shodan cerca de 1,3 milhão de hosts com a porta 37777 exposta publicamente à internet, e a ausência de limite de tentativas de login nessa porta torna viável obter credenciais por brute force mesmo quando a interface HTTP do mesmo dispositivo está protegida contra isso. Isso reduz a barreira de 'acesso autenticado' a uma questão de tempo e automação, não de conhecimento privilegiado.
A exploração documentada publicamente (PoC no GitHub da Tenable, referenciado também no Packet Storm) demonstra o crash/DoS de forma confiável; a execução de código arbitrário é apontada como plausível pelos pesquisadores, mas não há PoC público de RCE. A presença no catálogo KEV da CISA confirma exploração ativa no mundo real, coerente com o cenário de dispositivos IoT expostos e credenciais fracas ou padrão, comum nesse ecossistema.
Versiones
Cómo protegerse
A correção definitiva é atualizar o firmware para as versões que o fornecedor entregou à Tenable, específicas por linha de modelo: Amcrest_SD-Mao-Rhea_Eng_N_Stream3_AMCREST_V2.623.00AC004.0.R.200316.bin (modelos IP2M-853EW, IP2M-858W, IP4M-1053EW, IP2M-866W, IP2M-866EW); Amcrest_XVR5x04-X1_Eng_N_Amcrest_V4.000.00AC000.0.R.200218.bin (AMDV10814-H5); Amcrest_IPC-AWXX_Eng_N_AMCREST_V2.420.AC00.18.R.20200217.bin (IP2M-841, IPM-721, IPM-HX1); Amcrest_IPC-HX2(1)XXX-Sag_Eng_N_AMCREST_V2.800.00AC000.0.R.200330.bin (IP8M-2597E); Amcrest_IPC-Consumer-Web-Mao-Molec_Eng_N_AMCREST_V2.800.0000000.6.R.200314.bin (IP2M-841-V3); Amcrest_IPC-HX5X3X-Rhea_Eng_NP_Stream3_AMCREST_V2.622.00AC000.0.R.200320.bin (IP8M-2493EB, IP8M-2496EB, IP8M-2454EW, IP8M-T2499EW, IP8M-MT2544EW, IP8M-MB2546EW). Modelos não listados nessa lista devem ser verificados diretamente no portal de firmware do fornecedor, pois a lista da Tenable não é exaustiva de todo o catálogo Amcrest/Dahua afetado.
Se a atualização não for imediatamente viável, o paliativo real é não expor a porta 37777 à internet — bloqueá-la no firewall de perímetro e restringir acesso apenas a redes de gerência confiáveis. Isso neutraliza tanto o overflow quanto o brute force sem limite de tentativas, que é o vetor de obtenção de credenciais mais provável em campo. Trocar a senha padrão/fraca reduz mas não elimina o risco, já que a interface não tem lockout.
O que não funciona: um WAF não mitiga essa falha, pois o protocolo da porta 37777 é binário proprietário, não HTTP — regras de WAF não têm visibilidade sobre esse tráfego. Segmentação de rede e desativação da porta são os únicos controles compensatórios com efeito real documentado.
Cómo detectar
Em tráfego de rede, monitore conexões TCP à porta 37777 originadas de fora da rede de gerência esperada, e dentro do protocolo binário procure mensagens com comando 0x62 e subcomando 0x04 (teste de DDNS) contendo um campo Protocol anormalmente longo — indício direto de tentativa de exploração do overflow. Volume elevado de tentativas de autenticação sequenciais contra a porta 37777, sem o padrão de bloqueio visto na interface HTTP, é sinal de brute force de credenciais, pré-requisito comum do ataque.
Em log do dispositivo, reinicializações inesperadas ou crashes recorrentes do serviço vinculado à porta 37777 sem causa identificada são o sinal operacional mais direto de exploração ativa (mesmo que apenas para DoS). Não há assinatura de IDS/IPS pública e amplamente validada divulgada nas fontes consultadas — a detecção depende principalmente de inspeção de payload binário customizada e de correlação com crashes do dispositivo.