
Aplicação Next.js intencionalmente vulnerável demonstrando RCE CVE-2025-55182 via desserialização insegura em React Server Components. Inclui scripts de exploração e integração com scanner para pesquisa e educação em segurança.
⚠️ ATENÇÃO: Esta aplicação é intencionalmente vulnerável apenas para fins educacionais e de pesquisa em segurança. NÃO implante em produção ou exponha à internet.
Esta é uma aplicação Next.js vulnerável que demonstra a CVE-2025-55182, uma vulnerabilidade crítica de Execução Remota de Código em Componentes de Servidor React. A aplicação foi projetada para se parecer com um painel profissional de hospedagem em nuvem, sendo intencionalmente vulnerável para testes de segurança e fins educacionais.
Detalhes da CVE:
curl_id.sh para testar a vulnerabilidadenpm install --legacy-peer-deps
npm run dev
A aplicação estará disponível em http://localhost:3000
O repositório inclui curl_id.sh, uma ferramenta de linha de comando baseada no template Nuclei para explorar a CVE-2025-55182.
Uso:
# Executar comando id (padrão)
./curl_id.sh -d localhost:3000 -c id
# Executar comandos personalizados
./curl_id.sh -d localhost:3000 -c "whoami"
./curl_id.sh -d localhost:3000 -c "uname -a"
./curl_id.sh -d localhost:3000 -c "ls -la /tmp"
# Testar domínios remotos (se vulneráveis)
./curl_id.sh -d vulnapp.com -c id
Opções:
-d, --domain: Domínio/URL alvo (padrão: http://localhost:3000)-c, --command: Comando a executar (padrão: id)git clone https://github.com/assetnote/react2shell-scanner.git
cd react2shell-scanner
pip install -r requirements.txt
python3 scanner.py -u http://localhost:3000
python3 scanner.py -u http://localhost:3000 --safe-check
A vulnerabilidade pode ser explorada enviando uma requisição POST multipart maliciosa para o servidor com:
Next-Action: xX-Nextjs-Request-IdX-Nextjs-Html-Request-IdVeja o repositório react2shell-scanner para a estrutura exata do payload.
A vulnerabilidade existe no mecanismo de desserialização dos Componentes de Servidor React. Quando o Next.js processa ações do servidor, ele desserializa o payload da requisição. As versões vulneráveis do React (19.0.0-19.2.0) não validam ou sanitizam adequadamente os dados desserializados, permitindo que atacantes:
process.mainModule.require('child_process').execSync()X-Action-RedirectO exploit utiliza um ataque de poluição de protótipo no processo de desserialização JSON. A estrutura do payload inclui:
then que polui a cadeia de protótipos_response com um campo _prefix contendo código JavaScriptexecSync() e redireciona a saída para o cabeçalho de respostaPara corrigir esta vulnerabilidade:
npm install react@latest react-dom@latest
npm install next@latest
npm audit fix
vuln-app-CVE-2025-55182/
├── app/
│ ├── actions.ts # Ação de servidor vulnerável
│ ├── layout.tsx # Layout raiz
│ └── page.tsx # Página principal do painel
├── node_modules/ # Dependências
├── curl_id.sh # Script de exploração para testes
├── package.json # Dependências do projeto (versões vulneráveis)
├── tsconfig.json # Configuração TypeScript
├── next.config.js # Configuração Next.js
├── .gitignore # Regras de ignorar do Git
└── README.md # Este arquivo
Esta aplicação foi criada exclusivamente para fins de pesquisa em segurança e educacionais.
Os autores e contribuidores não são responsáveis por qualquer uso indevido deste código. O acesso não autorizado a sistemas de computador é ilegal e pode resultar em processo criminal.
Este é um repositório educacional. Contribuições que melhorem a documentação, adicionem melhores exemplos ou aprimorem o valor educacional são bem-vindas.
Este projeto é fornecido para fins educacionais. Use por sua conta e risco.
Lembre-se: Esta é uma aplicação vulnerável. Use com responsabilidade e apenas em ambientes controlados para pesquisa de segurança e educação.