← voltar
CVE-2020-8657criticalsob ataqueCWE-798

CVE-2020-8657

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 92%
da publicação à arma28 dias
Publicada no NVD6 de fev.
1ª PoC+28d
metasploit6 de fev.
CISA KEV+636d
probabilidade de exploração
92%top 1% das CVEs
exploração observada
simCISA + VulnCheck
2 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumo

O EyesOfNetwork 5.3 usa uma chave de API fixa, hardcoded em include/api_functions.php (API versão 2.4.2), idêntica em toda instalação feita a partir do pacote oficial. Como o token de acesso é derivado dessa chave, do ID do usuário e do IP do servidor — todos valores previsíveis ou descobríveis —, qualquer atacante remoto e não autenticado pode calcular o token do admin (ID sempre '1') e assumir a conta com privilégio total. É CWE-798 (Use of Hard-Coded Credentials) clássico, e está no catálogo KEV da CISA com exploração confirmada.

Detalhamento técnico

A falha está no esquema de geração de token da API do EyesOfNetwork (eonapi, versão 2.4.2 embutida no EON 5.3). O token não depende de segredo por instalação: ele é o resultado de duas operações de hash encadeadas sobre valores conhecidos. Primeiro calcula-se md5(API_KEY + user_id); o resultado é concatenado com o IP do servidor e submetido a sha256. A API_KEY é a mesma em toda instalação vinda do pacote oficial (hardcoded no código-fonte, não gerada nem exposta para rotação pela interface web de administração), e o user_id do administrador é sempre '1'.

O único valor variável nessa fórmula é o IP do servidor — e mesmo esse é trivialmente obtido na maioria dos casos, pois é o próprio endereço para o qual o atacante está direcionando a requisição (a menos que a instância esteja atrás de NAT, caso em que o IP interno pode não coincidir com o público). Com API_KEY, user_id e IP em mãos, o atacante reproduz os dois hashes offline e obtém o token de sessão do admin sem nunca ter se autenticado.

O relatório original (issue #17 no repositório eonapi) demonstra o cálculo passo a passo com valores de exemplo, confirmando que a chave padrão '€On@piK3Y' não é alterada por padrão em nenhuma etapa da instalação nem exposta para reconfiguração via painel web — ou seja, o operador não tem, a princípio, um caminho oficial de rotação da chave.

Como é explorada

O vetor é de rede, sem autenticação prévia e sem interação do usuário (AV:N/AC:L/PR:N/UI:N no vetor CVSS), o que explica a nota máxima de severidade. O atacante só precisa acessar a API HTTP exposta pelo EON e enviar o token calculado como se fosse uma sessão de admin legítima; não há bypass de criptografia nem força bruta real — é cálculo direto de hash com entradas conhecidas.

A pré-condição prática relevante é o IP do servidor: em instâncias expostas diretamente à internet (o cenário mais comum de exploração observada), o IP é o mesmo endereço de destino da requisição, então não há obstáculo. Em ambientes com NAT/proxy reverso, o IP interno pode diferir do público, elevando a complexidade — mas isso não é garantia de segurança, apenas atrito adicional.

Com o token de admin obtido, o atacante herda o mesmo escopo de privilégios da API do EON, que inclui operações administrativas do sistema de monitoramento. Existe PoC pública (PacketStorm) associando essa falha a execução de comando via funcionalidade de auto-discovery de alvos da API, módulo Metasploit e template Nuclei disponíveis, e a CISA confirma exploração ativa (entrada no KEV desde novembro/2021, com prazo de correção fixado em maio/2022 para agências federais dos EUA).

Versões

Afetadas
EyesOfNetwork 5.3 (com API eonapi na versão 2.4.2, embutida na instalação).

Como se proteger

As fontes analisadas não trazem uma versão do EyesOfNetwork ou da API eonapi que corrija o problema — nem o advisory do fornecedor nem a issue no GitHub confirmam um patch com número de versão específico. A ação recomendada pela CISA no KEV é genérica ('aplicar atualizações conforme instruções do fornecedor'); não há aqui base factual para citar uma versão corrigida sem especular, e especular seria pior que não informar.

Como paliativo real: alterar manualmente a chave de API hardcoded no arquivo include/api_functions.php para um valor único por instalação, gerado de forma imprevisível, interrompe o cálculo do token pela fórmula pública — mas isso exige edição direta de código-fonte, não é suportado pela interface administrativa, e qualquer atualização futura do pacote pode reverter a alteração se sobrescrever o arquivo. Outro controle compensatório é restringir o acesso de rede à API (ACL, segmentação, firewall) para que só hosts de gerenciamento confiáveis alcancem o endpoint, reduzindo a superfície mesmo com a chave padrão intacta.

O que não funciona: esconder a instância atrás de NAT não é mitigação confiável — dificulta, mas não impede, já que o atacante pode inferir ou testar o IP público de saída, e a fórmula tolera esse tipo de tentativa e erro em ambientes com poucos IPs candidatos.

Como detectar

Não há assinatura de rede única e confiável, já que a exploração consiste em uma chamada de API autenticada com um token matematicamente válido — do ponto de vista do servidor, indistinguível de uma sessão legítima de admin. O sinal mais útil é comportamental: requisições à API do EON partindo de IPs externos desconhecidos, sem histórico prévio de login via interface web, especialmente chamadas a endpoints administrativos ou de auto-discovery logo após o primeiro contato do IP de origem.

Verificar se o arquivo include/api_functions.php mantém a chave padrão original é um indicador direto de exposição (não é 'detecção de ataque', mas confirma se o ambiente está na condição vulnerável). Logs de acesso à API que mostrem uso do token calculável (derivado de user_id '1' e do IP do próprio servidor) sem uma sequência de autenticação via formulário web anterior são o indício mais próximo de exploração dessa falha específica.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
An issue was discovered in EyesOfNetwork 5.3. The installation uses the same API key (hardcoded as EONAPI_KEY in include/api_functions.php for API version 2.4.2) by default for all installations, hence allowing an attacker to calculate/guess the admin access token.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.