Reprodução de cve-2025-0282-ivanti_rce_reproduction
CVSS 9.0 — CRÍTICO | Zero-Day Explorado Ativamente | Descoberto em Janeiro de 2025
CVE-2025-0282 é uma vulnerabilidade de estouro de buffer baseado na pilha (CWE-121 / CWE-787) no componente de manipulação IFT/TLS do Ivanti Connect Secure (ICS), Ivanti Policy Secure (IPS) e ZTA Gateways. A falha permite que um atacante remoto não autenticado obtenha execução arbitrária de código no dispositivo-alvo com privilégios de root.
A vulnerabilidade foi divulgada em 8 de janeiro de 2025 após ser observada em exploração ativa como zero-day. Ela foi atribuída ao ator de ameaças com nexo na China, rastreado como UNC5337 pela Mandiant. A CISA adicionou este CVE ao seu catálogo Known Exploited Vulnerabilities (KEV) dentro de 72 horas após a divulgação pública.
A vulnerabilidade reside no caminho de processamento de pacotes IFT (Internal Forwarding Table) / TLS da interface de gerenciamento HTTPS do dispositivo. Ao analisar mensagens de handshake TLS malformadas ou quadros IFT especialmente criados, o código copia dados controlados pelo atacante para um buffer de pilha de tamanho fixo sem a devida verificação de limites:
memcpy(stack_buffer, attacker_data, attacker_controlled_length); // no length check
Como o buffer de destino reside na pilha, um payload superdimensionado sobrescreve:
| Campo | Detalhe |
|---|---|
| Vetor | Rede |
| Complexidade | Baixa |
| Privilégios | Nenhum |
| Interação do Usuário | Nenhuma |
| Escopo | Inalterado |
| Confidencialidade | Alta |
| Integridade | Alta |
| Disponibilidade | Alta |
| Produto | Versões Afetadas | Versão Corrigida |
|---|---|---|
| Ivanti Connect Secure | < 22.7R2.5 | 22.7R2.5 |
| Ivanti Policy Secure | < 22.7R1.2 | 22.7R1.2 |
| ZTA Gateways | < 22.7R2.3 | 22.7R2.3 |
Observação: A Ivanti confirmou que a linha de versões 22.6 também é vulnerável. Clientes que ainda utilizam ICS 9.x ou 22.4 estão igualmente expostos.
sslvpn ou dsaccess/tmp/*.py, .sslvpn_config_upload ou entradas inesperadas no cronscapy, socket e sslClone este repositório:
git clone https://github.com/your-org/cve-2025-0282-reproduction
cd cve-2025-0282-reproduction
Instale as dependências:
pip install -r requirements.txt
(Requisitos: scapy, argparse, socket — socket é stdlib)
Execute o PoC contra o alvo:
python exploit.py --target 192.168.1.100 --port 8443
Para especificar um tamanho de payload personalizado:
python exploit.py --target 192.168.1.100 --port 8443 --payload-size 4096
Ative a saída de depuração:
python exploit.py --target 192.168.1.100 --port 8443 --verbose
memcpy em um buffer de pilha de 1024 bytes sem verificação de limitesImportante: O código fornecido é apenas para fins educacionais e testes autorizados. Ele demonstra a condição de estouro de buffer e causará uma negação de serviço (falha) em alvos sem patch. Executar isso contra sistemas que você não possui ou sem permissão por escrito para testar é ilegal.
Consulte exploit.py neste repositório.
O script aceita os seguintes argumentos:
usage: exploit.py [-h] --target TARGET [--port PORT] [--payload-size PAYLOAD_SIZE] [--verbose]
CVE-2025-0282 Ivanti Stack Buffer Overflow Reproduction PoC
options:
-h, --help show this help message and exit
--target TARGET Target Ivanti appliance IP or hostname
--port PORT Target port (default: 8443)
--payload-size PAYLOAD_SIZE
Size of overflow payload in bytes (default: 4096)
--verbose Enable verbose/debug output
| Ação | Detalhe |
|---|---|
| Aplicar patch imediatamente | Atualize para ICS >=22.7R2.5, IPS >=22.7R1.2, ZTA >=22.7R2.3 |
| Restringir acesso de rede | Limite a interface de gerenciamento HTTPS apenas a IPs confiáveis |
| Habilitar MFA | Mitiga o movimento lateral pós-exploração |
| Monitorar logs | Observe anomalias de TLS e falhas inesperadas de processos |
| Procurar IOCs | Verifique as TTPs do UNC5337 (extração de credenciais, ferramentas de túnel) |
Este repositório é fornecido apenas para pesquisa de segurança autorizada e fins educacionais. Os autores não são responsáveis por qualquer uso indevido deste código. A exploração não autorizada de CVE-2025-0282 é ilegal e antiética. Sempre obtenha permissão explícita por escrito antes de testar qualquer sistema.