Exploit de prova de conceito para CVE-2025-55182, um RCE não autenticado crítico em React Server Components. Inclui exploit Python automatizado, análise técnica, regras de detecção e configuração de ambiente de laboratório para testes de segurança autorizados.
Uma prova de conceito abrangente e recurso educacional para CVE-2025-55182, uma vulnerabilidade crítica de execução remota de código que afeta React Server Components, com pontuação CVSS 10.0.
APENAS PARA FINS EDUCACIONAIS E DE TESTES AUTORIZADOS
Esta ferramenta é fornecida apenas para fins educacionais e testes de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal sob diversas leis, incluindo o Computer Fraud and Abuse Act (CFAA) nos Estados Unidos e legislação semelhante em todo o mundo.
Você deve:
O autor e os colaboradores:
Ao usar esta ferramenta, você reconhece que compreende e concorda com estes termos.
React2Shell é uma vulnerabilidade crítica descoberta em dezembro de 2025 que afeta React Server Components (RSC) e frameworks que os implementam, especialmente Next.js. A vulnerabilidade permite execução remota de código não autenticada por meio de uma única requisição HTTP especialmente elaborada.
Este repositório contém:
| Campo | Detalhes |
|---|---|
| ID CVE | CVE-2025-55182 |
| Pontuação CVSS | 10.0 (Crítica) |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Nenhum |
| Interação do Usuário | Nenhuma |
| Impacto | Comprometimento total do sistema (RCE) |
| Data de Divulgação | Dezembro de 2025 |
create-next-app são exploráveisVersões vulneráveis:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0Versões corrigidas:
Versões vulneráveis:
Versões corrigidas:
A vulnerabilidade existe na função requireModule dentro da lógica de desserialização do React Server Components:
function requireModule(metadata) {
var moduleExports = __webpack_require__(metadata[0]);
return moduleExports[metadata[2]]; // VULNERABLE LINE - Prototype chain traversal
}
A falha permite que atacantes percorram a cadeia de protótipos de JavaScript por meio do protocolo React Flight, acessando o construtor Function por meio de propriedades como constructor.constructor, possibilitando a execução de código arbitrário.
__proto__ para criar uma estrutura autorreferenteconstructor.constructor para acessar Function()child_process.execSync()┌─────────────────────────────────────────────────────────────┐
│ Attacker sends multipart/form-data with Next-Action header │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Server deserializes payload via React Flight protocol │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Fake chunk object with __proto__ pollution processed │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Blob handler invokes _formData.get(_prefix + id) │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Resolves to Function("malicious_code") │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Arbitrary code executed with Node.js process privileges │
└─────────────────────────────────────────────────────────────┘
requests# Clone the repository
git clone https://github.com/yourusername/react2shell-poc.git
cd react2shell-poc
# Install dependencies
pip install -r requirements.txt
# Make script executable (Linux/macOS)
chmod +x react2shell.py
requests>=2.31.0
urllib3>=2.0.0
python3 react2shell.py
╔═══════════════════════════════════════════════════════════╗
║ React2Shell (CVE-2025-55182) PoC ║
║ CVSS 10.0 - Critical RCE ║
║ ║
║ Affected: React 19.0.0, 19.1.0, 19.1.1, 19.2.0 ║
║ Next.js ≥14.3.0-canary.77, 15.x, 16.x ║
║ ║
║ Cerberus Secure - Lab Use Only ║
╚═══════════════════════════════════════════════════════════╝
[?] Enter target information:
Host (e.g., localhost or 192.168.1.100): localhost
Port (e.g., 3000): 3000