
Proof of Concept (PoC) funcional para CVE-2025-55182 (React2Shell) - Execução Remota de Código não Autenticada no Next.js 15.0.0 através de Componentes do Servidor React
⚠️ APENAS PARA FINS EDUCACIONAIS
Este repositório foi criado estritamente para fins educacionais e de pesquisa. Ele demonstra uma vulnerabilidade crítica nos Componentes de Servidor do React (Next.js) para ajudar desenvolvedores a compreender os riscos e a importância de atualizar suas dependências.
NÃO UTILIZE ESTE CÓDIGO EM PRODUÇÃO OU CONTRA SISTEMAS QUE VOCÊ NÃO POSSUI.
Este projeto reproduz o CVE-2025-55182 (também conhecido como "React2Shell"), uma vulnerabilidade de Execução Remota de Código (RCE) que afeta os Componentes de Servidor do React em aplicações Next.js.
multipart/form-data manipulada que explora a lógica de desserialização dos Componentes de Servidor do React para executar código JavaScript arbitrário no servidor.
app/page.js: Contém o Painel de Exploração Interativo. Este Componente Cliente permite executar comandos RCE diretamente do navegador.app/actions.js: Contém uma Ação de Servidor padrão. A vulnerabilidade reside na lógica de análise (parser) do framework antes que esta ação seja executada.exploit.js: Um script Node.js independente para demonstrar o exploit programaticamente.Clone o repositório:
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(Opcional) Use a versão correta do Node.js:
nvm use
Instale as dependências (isso instalará as versões vulneráveis):
npm ci --legacy-peer-deps
# OU
npm install --force
Inicie o servidor de desenvolvimento:
npm run dev
O servidor deve iniciar em http://localhost:3000.
http://localhost:3000 no seu navegador.whoami, ls -la, ou cat package.json).Você pode executar o script de exploit diretamente do seu terminal:
# Uso básico
node exploit.js http://localhost:3000 "whoami"
# Abrir Calculadora (Linux) - use '&' para executar em segundo plano
node exploit.js http://localhost:3000 "gnome-calculator &"
Para corrigir esta vulnerabilidade em seus próprios projetos:
npm install next@latest react@latest react-dom@latest
O autor não é responsável por qualquer uso indevido desta informação. Este projeto destina-se a ajudar pesquisadores de segurança e desenvolvedores a melhorar a segurança de suas aplicações.